Outils et modules pour le serveur Apache

1 925 vues

Publié le

Outils et modules Apache au service du SEO - Atelier présenté lors du #teknseo 2014 http://teknseo.com

Les techniques contenues dans ce document ont été présentées dans le cadre d'un atelier au Teknseo 2014, visant à développer les connaissance des participants.
La responsabilité de son auteur ne pourrait être engagée en cas d’utilisation de ces techniques par un tiers. Le Negative SEO est considéré comme de la concurrence déloyale.

Publié dans : Internet
0 commentaire
10 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 925
Sur SlideShare
0
Issues des intégrations
0
Intégrations
116
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
10
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • Directive location et directory, conf serveur et vhosts, plus rapides pour accélerer des traitements ne ciblant que des parties du site
  • Pas que les analyseurs, les outils de crawl comme Xenu (pour ce qui se font scrapper leur annuaires-> domaining) ou autres…
  • On peut bloquer les protocoles aussi (request_method)  hack avec limit get post / demo
  • Tabloid norvégien , L’architecte du produit est le danois Poul-Henning Kamp, également contributeur historique au projet FreeBSD.
    Varnish=vernis
    Différence avec plug Wordpress. Utile pour les ressources dynamiques.
    Idéal pour les montées en charge.
    Contenu anonyme, attention cookies & co  ajax, norme ESI
  • Outils et modules pour le serveur Apache

    1. 1. 1@aymerictwit SEO: outils et modules pour Apache
    2. 2. 2@aymerictwit SEO: outils et modules pour Apache Pendant 1 heure, on va causer de performances et aussi de…
    3. 3. 3@aymerictwit Objectifs de l'atelier: - Apache et ses fichiers de configuration - Utiliser les variables d'environnement (ex: cloacking, deny IP) - Les modules à connaître - NSEO et Duplicate Content - Optimiser et monitorer son serveur Web - Varnish en front pour doper ses perfs SEO: outils et modules pour Apache
    4. 4. 4@aymerictwit Apache c'est - Un serveur HTTP puissant! mais parfois lourd… - Des modules permettant de nombreuses fonctionnalités pouvant être utiles pour le SEO - Combiner différents modules pour aller plus loin  Varnish pour mieux tirer profit des outils d'Apache tout en boostant les performances de ton serveur Web SEO: outils et modules pour Apache
    5. 5. 5@aymerictwit Rappel .htaccess Pour chaque appel de fichier, Apache va vérifier la présence d’un fichier .htaccess dans tous les répertoires :http://www.monsite.com/fr/categorie/images/monimage.jpg Si le contenu du fichier .htaccess présent dans le répertoire /var/www/monsite/ était dans le fichier de configuration global apache2conf, il ne serait chargé qu’au démarrage du serveur  Moins d’accès disque par le daemon httpd & serveur plus rapide pour servir les fichiers SEO: outils et modules pour Apache /v ar /www/monsite/ /v ar/ ww w /mo nsi te/f r/ /var/www/monsite/fr/categorie/ /var/www/monsite/fr/categorie/images/ .htaccess ? .htaccess ? .htaccess ? .htaccess ?
    6. 6. 6@aymerictwit Gain de performances sans .htaccess: D'autres sections existent pour les directives : <Files "*.php"></Files> <FilesMatch ".(jpe?g|png)$"></Files> Pour désactiver les .htaccess: AllowOverride None SEO: outils et modules pour Apache
    7. 7. 7@aymerictwit mod_setenvif(#a2enmod setenvif) On définit des variables d'environnement avec des IF pour interagir avec d'autres modules comme mod_headers, mod_rewrite, mod_includes, mod_log_config… SetEnvIfNoCase User-Agent HTTrack aspirateur (équivalent: BrowserMatchNoCase HTTrack bot) SetEnvIf Request_URI ".jpg$" objetimage=jpg Liste des attributs: Remote_Host, Remote_Addr, Server_Addr, Request_Method, Request_Protocol, Request_URI, Referer SEO: outils et modules pour Apache
    8. 8. 8@aymerictwit mod_setenvif(#a2enmod setenvif) Et si on cachait aux analyseurs de backlinks notre réseau de liens? Ah! On peut les bloquer dans le robots.txt… User-agent: AhrefsBot Disallow: / User-agent: MJ12bot Disallow: / SEO: outils et modules pour Apache
    9. 9. 9@aymerictwit mod_setenvif(#a2enmod setenvif) Bloquer les traceurs de liens pour planquer son réseau SetEnvIfNoCase User-Agent "^AhrefsBot" especedindiscret SetEnvIfNoCase User-Agent "^MJ12bot" especedindiscret Order Allow,Deny Allow from All Deny from env= especedindiscret Autre exemple : détecter la pagination pour des actions ultérieures SetEnvIf Request_URI ".*/page/.*" stopindex #puis mod_headers pour envoyer du noindex, follow SEO: outils et modules pour Apache
    10. 10. 10@aymerictwit mod_headers (#a2enmod headers) Manipuler les en-têtes HTTP Header set|unset|append|add Nomdelentete "Contenu"{ } En-tête HTTP X-Robots-Tag pour Googlebot #avec déclaration variable d'environnement <Files "partenaires.html">Header Set X-Robots-Tag 'nofollow' env=CLOACK</Files> En-tête HTTP X-Robots-Tag pour cacher son côté obscur #avec déclaration variable d'environnement Header set X-Robots-Tag "nosnippet,noarchive" CLOACK SEO: outils et modules pour Apache
    11. 11. 11@aymerictwit mod_headers (#a2enmod headers) Un ordre est respecté pour l'exécution de ces directives - Serveur principal - Vhost (hors sections) - Sections <Directory> et fichiers .htaccess - <Files> - <Location> Utile pour les en-têtes Link (canonical, prev, netxt), X-Robots-tag mais aussi pour les en-têtes de cache. SEO: outils et modules pour Apache
    12. 12. 12@aymerictwit mod_rewrite (#a2enmod rewrite) Gestion de la réécriture d'URL Exemples d'utilisation avancés: - Définir des variables d'environnement en fonction de plusieurs éléments - Interagir avec d'autres modules (mod_headers, mod_proxy, etc.) - Manipuler les URL et ce qui les composent (host, query_string) - Gérer des migrations SEO SEO: outils et modules pour Apache
    13. 13. 13@aymerictwit mod_rewrite (#a2enmod rewrite) mod_rewrite c'est plus marrant avec - Des regexp: ^/?([A-Z] 1,4 )/(.*)${ } - Des variables d'environnement: % HTTP_REFERER , % QUERY_STRING , % REQUEST_URI , % HTTP_USER_AGENT , % REMOTE_ADDR , % HTTP:Accept-Language …{ } { } { } { } { } { } - Des conditions de réécriture: RewriteCond - Des drapeaux: [R=xxx], [F], [G], [P], [CO], [S=xxx], [T= image/jpeg]. SEO: outils et modules pour Apache
    14. 14. 14@aymerictwit mod_rewrite (#a2enmod rewrite) - Dans une RewriteRule, on récupère les ensembles avec des $ RewriteRule ^/([a-zA-Z-]+)/([a-zA-Z-]+)/([a-zA-Z-]+)$ display.php?pays=$1&dpt=$2&ville=$3 - Dans une RewriteCond, on récupère les ensembles avec % RewriteCond % QUERY_STRING ^page={ } (.*)$ RewriteRule ^(.*)$ /$1/page/%1/ [R=301,L] SEO: outils et modules pour Apache
    15. 15. 15@aymerictwit mod_rewrite (#a2enmod rewrite) C’est aussi très pratique pour faire du cloacking… SEO: outils et modules pour Apache
    16. 16. 16@aymerictwit mod_rewrite (#a2enmod rewrite) Cloacking du parano avec Apache RewriteCond % REMOTE_HOST ^crawl-66-249-[0-9] 1,3 -[0-9] 1,3 .googlebot.com${ } { } { } RewriteCond % REMOTE_ADDR ^66.249.[0-9] 1,3 .[0-9] 1,3 ${ } { } { } RewriteCond % HTTP:Accept-Language ^${ } RewriteCond % HTTP_REFERER ^${ } RewriteCond % HTTP_USER_AGENT Googlebot{ } RewriteRule ^home.html$ /homeggbot.html [L] RewriteRule ^home.html$ /homestandard.html [L] Pour pouvoir résoudre les IP de REMOTE_HOST: HostnameLookups on SEO: outils et modules pour Apache
    17. 17. 17@aymerictwit mod_rewrite (#a2enmod rewrite) Avant de passer en ligne et de tout casser, vérifie ton cloacking: SEO: outils et modules pour Apache
    18. 18. 18@aymerictwit mod_rewrite (#a2enmod rewrite) Rappel: pour un cloacking Googlebot sur IP SEO: outils et modules pour Apache
    19. 19. 19@aymerictwit mod_rewrite (#a2enmod rewrite) Réutiliser des détections grâce aux variables d'environnement RewriteCond % REMOTE_HOST ^crawl-66-249-[0-9] 1,3 -[0-9] 1,3 .googlebot.com${ } { } { } RewriteCond % HTTP:Accept-Language ^${ } RewriteCond % HTTP_REFERER ^${ } RewriteCond % HTTP_USER_AGENT Googlebot{ } RewriteRule . – [E=CLOACK:true] #on réécrit en fonction de la valeur de la variable CLOACK RewriteCond % CLOACK !^true${ } RewriteRule ^/?robots.txt /robotspourindiscrets.txt [L] SEO: outils et modules pour Apache
    20. 20. 20@aymerictwit mod_rewrite (#a2enmod rewrite) Faire sauter toutes les variables inconnues pour se protéger du DC RewriteCond % QUERY_STRING !^${ } RewriteCond % QUERY_STRING !(utm_source|utm_medium|utm_campaign){ } RewriteRule ^(.*)$ /$1? [R=301,L] Hotlinking d'images RewriteCond % HTTP_REFERER !^${ } RewriteCond % HTTP_REFERER !^http://www.urldemonsite.com/$ [NC]{ } RewriteRule ^.*.(gif|png|jpe?g)$ /hotlinking.php?pict=% REQUEST_URI [L,NC]{ } SEO: outils et modules pour Apache
    21. 21. 21@aymerictwit mod_rewrite (#a2enmod rewrite) Migration SEO et performances RewriteBase /forum/ RewriteCond % REQUEST_URI !^/forum/.*${ } RewriteRule . – [S=698] RewriteRule ^viewtopic.php?id=279 /forum/bons-reductions-cdiscount.html [R=301,L] RewriteRule ^viewtopic.php?id=134 /forum/comment-devenir-riche.html [R=301,L] ……. Si l'URL ne contient pas /forum/ (forum qui a migré), on saute les 698 règles qui suivent (1 règle = 1 RewriteRule) Ou rewriteMap pour y voir plus clair RewriteMap : RewriteRule avec un fichier de correspondance (préférence pour les .dbm) SEO: outils et modules pour Apache
    22. 22. 22@aymerictwit mod_ext_filter (#a2enmod ext_filter) Envoyer la réponse d'Apache à un programme externe Exemples d'utilisation: - Utiliser des commandes tels que sed, awk pour faire du search-and-replace avancé (ex: copyright en footer sur des pages statiques, nofollow) - Modification d'images: watermark, cropping, filters, effects… - Ton imagination  SEO: outils et modules pour Apache
    23. 23. 23@aymerictwit mod_ext_filter (#a2enmod ext_filter) Ranker sur Google Images avec les images d'un autre site:  Flip horizontal saturation  SEO: outils et modules pour Apache
    24. 24. 24@aymerictwit mod_ext_filter (#a2enmod ext_filter) Watermark images + modification de footprint: <IfModule mod_ext_filter.c> ExtFilterDefine watermark mode=output intype=image/jpeg cmd="/usr/bin/composite -gravity SouthEast /var/www/labs/images/wm.png - -" </IfModule> <FilesMatch ".jpg$"> SetOutputFilter watermark </FilesMatch> Demo: http://labs.yapasdequoi.com/images/ SEO: outils et modules pour Apache
    25. 25. 25@aymerictwit mod_substitute (#a2enmod substitute) Effectuer des rechercher/remplacer dans le corps des réponses Exemples d'utilisation: - Modifier les styles (font, color, etc.) sur l'ensemble d'un site sans modifier toutes les feuilles de style - Nettoyer des thèmes Wordpress malveillant ou supprimer un hack en attendant de trouver une solution plus clean (origine du code généré) - Cacher ses liens d'affiliation - Cleaner du contenu UGC, filtrer des mots SEO: outils et modules pour Apache
    26. 26. 26@aymerictwit mod_substitute (#a2enmod substitute) AddOutputFilterByType SUBSTITUTE text/html Remplacer un mot par un autre Substitute "s/SEO/référencement naturel/i" Ajouter l'appel d'un fichier JS Substitute "s|</head>|<script src="http://www.monsite.com/js/jquery.js"></head>|ni" Changement d'un répertoire image Substitute "s| src="http://www.yapasdequoi.com/wp-content/uploads/([^"]*)"| src="/pict/$1"|i" i = insensible à la casse, n = chaîne fixe, pas de regexp SEO: outils et modules pour Apache
    27. 27. 27@aymerictwit Reverse Proxy, ça te parle? Invisible pour l'internaute, le ReverseProxy va récupérer du contenu sur un backend, pour éventuellement le mettre en cache  1 requête pour de multiples requêtes utilisateur SEO: outils et modules pour Apache
    28. 28. 28@aymerictwit mod_proxy (#a2enmod proxy,proxy_http,proxy_html) Mandataire inversé : <client > <reverseproxy> <sitedistant>, transparent pour l'utilisateur En détournant l'utilisation d'un reverse proxy, nous allons pouvoir: - Faire du NSEO Duplicate (reverse proxy cloacké) - Dupliquer un site à la volée (et en modifier certains éléments) SEO: outils et modules pour Apache
    29. 29. 29@aymerictwit mod_proxy (#a2enmod proxy,proxy_http,proxy_html) Duplicate NSEO sur une homepage (attention au nombre de liens) ProxyPreserveHost Off ProxyRequests off RequestHeader unset Accept-Encoding env=CLOACK Header Set X-Robots-Tag "noarchive,nosnippet" env=CLOACK RewriteEngine On RewriteCond % ENV:CLOACK true{ } RewriteCond % REQUEST_URI ^/${ } RewriteRule . http://www.mattcutts.com/ [P,L] ProxyPassReverse / http://www.mattcutts.com/ [P]= proxy (traitement de la requête) SEO: outils et modules pour Apache
    30. 30. 30@aymerictwit mod_proxy (#a2enmod proxy,proxy_http,proxy_html) Duplicate NSEO sur une homepage… et dans le cas inverse RewriteRule ^index.php$ - [L] RewriteCond % ENV:CLOACK !true{ } RewriteCond % REQUEST_FILENAME !-f{ } RewriteCond % REQUEST_FILENAME !-d{ } RewriteRule . /index.php [L]  Reverse proxy applicable à des pages spécifiques ou à l'ensemble d'un site Spécial dédicace Tiger http://www.seoblackout.com/2014/02/01/negative-seo-duplicate-content-mattcutts/ [ SEO: outils et modules pour Apache
    31. 31. 31@aymerictwit mod_proxy (#a2enmod proxy,proxy_http,proxy_html) S'attribuer la propriété d'un site de façon temporaire pour - S'inscrire dans les annuaires alors que le site est "en construction" - Poser des liens avec un site pourri/thématique touchy & co: (referer inside) - …ton imagination  SEO: outils et modules pour Apache
    32. 32. 32@aymerictwit mod_proxy (#a2enmod proxy,proxy_http,proxy_html) Copier un site à la volée en modifiant quelques détails: Header set X-Robots-Tag "noindex,nofollow" ServerName usurpateur.yapasdequoi.com ProxyPreserveHost Off ProxyRequests Off ProxyPass / http://www.laurentbourrelly.com/ ProxyPassReverse / http://www.laurentbourrelly.com/ #RequestHeader unset Accept-Encoding SetOutputFilter INFLATE;DEFLATE AddOutputFilterByType SUBSTITUTE text/html Substitute "s|Laurent Bourrelly|Kevin Richard|i" Substitute "s|SEO |Blackhat SEO|i" Substitute "s|<img src="/images/laurent-bourrelly.png.*">|<img src=http://www.chambe-carnet.com/wp-content/uploads/2012/01/photo-chambe-carnet-kevin-richard-251x300.jpg" width="150" height="150">|i" ProxyHTMLEnable On ProxyHTMLURLMap http://www.laurentbourrelly.com/ / SEO: outils et modules pour Apache Ex: http://usurpateur.yapasdequoi.com
    33. 33. 33@aymerictwit Les Logs, en cas de soucis avec ta config - Log d'erreurs #nano /var/log/apache2/error.log - On crée des logs spécifiques avec les variables d'environnements SetEnvIf User-Agent "Googlebot/2.1" googlebot_log CustomLog /var/log/apache2/google.log combined env=googlebot_log - On stock tous les referers sauf le local SetEnvIf Referer www.yapasdequoi.com reflocal CustomLog /var/log/apache2/referer.log combined env=!reflocal - On envoie les lignes de logs dans un programme CustomLog "|/var/www/scripts/analyse.php" formatspecifique env=watussi SEO: outils et modules pour Apache
    34. 34. 34@aymerictwit Et les outils Apache pratiques Infos sur la configuration du serveur que tu ne connais pas (vhosts) #apache2ctl –S - Tester les performances du serveur avec Apache Benchmark #ab -n 1000 -c 10 http://www.google.fr/ (1000 requêtes avec10 requêtes simultanées… Tiens, on peut faire du POST avec aussi ) - Résoudre des IP logresolve stats.txt -c /var/log/apache2/googlebot.log hotesgoogle.txt SEO: outils et modules pour Apache
    35. 35. 35@aymerictwit Tu gères sur Apache maintenant? Alors on passe aux choses sérieuses… SEO: outils et modules pour Apache
    36. 36. 36@aymerictwit Varnish = "The" reverse proxy il ne sait faire que ça, mais il le fait très bien https://www.youtube.com/watch?v=x7t2Sp174eI Varnish
    37. 37. 37@aymerictwit Varnish + Apache
    38. 38. 38@aymerictwit Apache doc: http://httpd.apache.org/docs/2.2/en/ et différents sites parcourus au fil du temps… Quelques billets sur Apache & Varnish: http://www.yapasdequoi.com Liens utiles et sources:
    39. 39. 39@aymerictwit Merci d'avoir choisi cet atelier! Contact : http://twitter.com/aymerictwit Google+: https://plus.google.com/+AymericBouillat Linkedin: http://fr.linkedin.com/in/aymericbouillat Keep in touch 

    ×