• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
htaccess SEO Tipps
 

htaccess SEO Tipps

on

  • 3,080 views

Mein Vortrag ".htaccess für Nicht-Techies" von der SEO-Campixx 2014.

Mein Vortrag ".htaccess für Nicht-Techies" von der SEO-Campixx 2014.

Statistics

Views

Total Views
3,080
Views on SlideShare
2,228
Embed Views
852

Actions

Likes
6
Downloads
44
Comments
0

3 Embeds 852

http://www.maltelandwehr.de 850
https://www.xing.com 1
http://www.google.de 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    htaccess SEO Tipps htaccess SEO Tipps Presentation Transcript

    • .htaccess für Nicht-Techies Berlin 16.03.2014 Malte Landwehr
    • Malte Landwehr https://plus.google.com/+MalteLandwehr/ http://twitter.com/maltelandwehr https://www.facebook.com/landwehr http://www.linkedin.com/in/landwehr • 2003 – now: SEO • 2007 – now: ORM • 2007 – 2014: Computer Science (BSc + MSc) • 2008 – 2010: CoFounder & Head of SEO • 2012 – 2013: Research (Social Network Analysis)
    • Was ist die .htaccess?
    • Malte Landwehr
    • Malte Landwehr HTTP_HOST seo-campixx-14.de QUERY_STRING id=test&timestamp=123 REQUEST_URI /wp-content/uploads/2010/09/reise.jpg
    • Malte Landwehr HTTP_HOST seo-campixx-14.de QUERY_STRING id=test&timestamp=123 REQUEST_URI /wp-content/uploads/2010/09/reise.jpg vom HTTP_HOST auf Ordner im Dateisystem
    • Malte Landwehr HTTP_HOST seo-campixx-14.de QUERY_STRING id=test&timestamp=123 REQUEST_URI /wp-content/uploads/2010/09/reise.jpg vom HTTP_HOST auf Ordner im Dateisystem Im Ordner nach Datei aus REQUEST_URI suchen
    • Malte Landwehr HTTP_HOST seo-campixx-14.de QUERY_STRING id=test&timestamp=123 REQUEST_URI /wp-content/uploads/2010/09/reise.jpg vom HTTP_HOST auf Ordner im Dateisystem Im Ordner nach Datei aus REQUEST_URI suchen QUERY_STRING an Datei übergeben
    • Malte Landwehr vom HTTP_HOST auf Ordner im Dateisystem Im Ordner nach Datei aus REQUEST_URI suchen QUERY_STRING an Datei übergeben In .htaccess des Ordners (sowie aller übergeordneter Ordner) schauen und passende Befehle ausführen. Dadurch können u.U. komplett neue Requests entstehen.
    • Malte Landwehr Was ist die .htaccess? • Konfigurationsdatei • Apache Webserver • Abarbeitung von oben nach unten • hypertext access
    • Spammer & Scraper aussperren
    • Nervt! Kommentar-SPAM
    • Malte Landwehr Problem • Mein Forum wird regelmäßig mit Kommentaren zugespammt. • Die Spammer kommen oft von den gleichen IP- Adresse: – 31.41.216.134 (Ukraine) – 84.232.199.206 (Rumänien) Alle IP-Adressen sind zufällige Beispiele!
    • Malte Landwehr IP-Adressen sperren Order allow,deny allow from all deny from 31.41.216.134 deny from 84.232.199.206 deny from 72.29.65.240
    • Malte Landwehr Order allow,deny allow from all deny from 31.41.216.134 deny from 84.232.199.206 deny from 72.29.65.240 Diese IP-Adressen haben keinen Zugriff allow > deny Jeder hat Zugriff
    • Ergebnis
    • Malte Landwehr Anmerkung • Befehle werden nicht in der Reihenfolge ausgeführt, in der sie da stehen! • „Fixed“ in Apache 2.4 – “Controling how and in what order authorization will be applied has been a bit of a mystery in the past” – RequireAll – RequireAny – RequireNone
    • Malte Landwehr IP-Ranges deny from 5.100.192.0/14 deny from 31.24.88.0/21 deny from 37.17.0.0/17 deny from 37.44.64.0/18
    • Malte Landwehr IP-Ranges 85 . 182 . 250 . 35 01010101 . 10110110 . 11111010 . 00011101 85 . 182 . 255. 255 /14 01010101 . 10110110 . 11****** . ******** 01010101 . 10110110 . 11000000 . 00000000 01010101 . 10110110 . 1111111111 . 11111111bis bis85 . 182 . 192 . 0 85 . 182 . 250 . 35
    • Malte Landwehr IP-Ranges deny from 5.100.192.0/14 deny from 31.24.88.0/21 deny from 37.17.0.0/17 deny from 37.44.64.0/18 http://incredibill.me/htaccess-block-country-ips
    • Hilft auch gegen Content-Diebe! Scraper Sites Screenshot entfernt.
    • Admin-Bereich absichern (für jedes CMS!)
    • Malte Landwehr Problem • Ich habe unter /wp-admin/ einen Bereich, in den nur ich mich einloggen können soll. • Ich nutze dafür die .htaccess im Ordner /wp-admin/.
    • Malte Landwehr Ordner Sperre Order deny,allow allow from 192.168.0.1 deny from all
    • Malte Landwehr Order deny,allow allow from 192.168.0.1 deny from all Niemand hat Zugriff Diese IP hat Zugriff deny > allow
    • Malte Landwehr Besser • htpasswd
    • Sicherheit & Datenschutz
    • Wenn keine Index-Datei in einem Ordner liegt, soll nicht der gesamte Inhalt aufgelistet werden. • Sicherheit • Rechtliche Probleme? Screenshot entfernt.
    • Malte Landwehr Directory Listing deaktivieren Options -Indexes
    • index of name last modified size description "passwort.txt" Fun Fact: google it Screenshot entfernt.
    • Installierte Wordpress Plugins
    • Custom Fehlermeldungen
    • Malte Landwehr Problem • Ich habe „eine“ Expired Domain gekauft. • Alle 404-Fehler sollen per 301 auf die Startseite geleitet werden.
    • Malte Landwehr Custom 404 Fehler ErrorDocument 404 /redirect.php
    • Malte Landwehr Custom 404 Fehler ErrorDocument 404 /redirect.php Das auszugebende DokumentBefehl Art des Fehlers
    • Malte Landwehr redirect.php <?php header("HTTP/1.1 301 Moved Permanently"); header("Location: http://www.example.com/"); ?>
    • Alternativen • Echter 404 Fehler • 404 im Header • Inhalt für Nutzer • Suchfunktion • Sitemap • Google Analytics
    • Malte Landwehr Neil Patel über 404-Fehlerseiten http://www.quicksprout.com/2013/12/04/11-seo-changes-that-will-give-you-big-results/ • I create custom ones that display a creative image […] also links out to 25 to 50 random internal pages • each time the 404 error page is loaded, the links automatically change • increase the number of pages that get indexed • TechCrunch: +9% search engine traffic in 30 days
    • Zweierlei Redirects
    • Malte Landwehr Problem I • Die URL-Struktur meiner Website hat sich geändert. • Beim Aufruf der alten URL http://example.com/kategorie/thema/ soll auf die neue URL http://forum.example.com/thema1/thema/ weitergeleitet werden.
    • Malte Landwehr Einfacher Redirect Redirect 301 /kategorie/thema/ http://forum.example.com/thema1/thema/
    • Malte Landwehr Einfacher Redirect Redirect 301 /kategorie/thema/ http://forum.example.com/thema1/thema/ Befehl Art der Weiterleitung Alte URL (relativ!) Neue URL (absolut!) Art der Weiterleitung
    • Malte Landwehr Wie wird weitergeleitet? Eingabe Ergebnis /kategorie/thema/ http://forum.example.com/thema1/thema/ /kategorie/thema/a http://forum.example.com/thema1/thema/a /kategorie/thema/?id=a http://forum.example.com/thema1/thema/?id=a /kategorie/them n/a /kategorie/ n/a
    • Malte Landwehr Problem II • Alle Aufrufe der Form /empfehlungen.asp?id=123&page=456 oder /empfehlungen.asp?id=666&page=42 sollen auf /empfehlungen.html weitergeleitet werden. • Alle Parameter sollen abgeschnitten werden!
    • Malte Landwehr Dynamischer Redirect RewriteEngine On RewriteRule (^empfehlung.asp(.*)$) forward_empfehlung.php
    • Malte Landwehr Dynamischer Redirect RewriteEngine On RewriteRule (^empfehlung.asp(.*)$) forward_empfehlung.php Befehl Regulärer Ausdruck Auszuführende Datei
    • Malte Landwehr Dynamischer Redirect RewriteEngine On RewriteRule (^empfehlung.asp(.*)$) forward_empfehlung.php Anfang empfehlung.asp bel. Zeichen bel. oft Ende
    • Malte Landwehr Forward_empfehlung.php <?php header("HTTP/1.1 301 Moved Permanently"); header("Location: http://www.example.com/empfehlungen.html"); ?>
    • Malte Landwehr Wie wird weitergeleitet? Eingabe Ergebnis /empfehlung.asp http://www.example.com/empfehlungen.html /empfehlung.asp?id=a http://www.example.com/empfehlungen.html /empfehlung.aspid=123 http://www.example.com/empfehlungen.html /empfehlung.asp?id=123&p=456 http://www.example.com/empfehlungen.html /empfehlung.aspx http://www.example.com/empfehlungen.html /empfehlung.aspx?id=123 http://www.example.com/empfehlungen.html
    • Malte Landwehr Anmerkung • Geht auch ohne PHP.
    • Mehr Page Speed
    • Malte Landwehr Browser-Caching • Anweisung an den Client: Diese statische Datei musst du für den Zeitraum x nicht erneut anfragen. • Weniger Traffic • Bessere Ladezeit • Bessere Page Speed-Bewertung
    • <IfModule mod_expires.c> ExpiresActive On ExpiresByType image/gif "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType image/jpg "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType text/css "access 1 month” ExpiresByType application/javascript "access plus 1 month" </IfModule>
    • <IfModule mod_expires.c> ExpiresActive On ExpiresByType image/gif "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType image/jpg "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType text/css "access 1 month” ExpiresByType application/javascript "access plus 1 year" </IfModule> Optional: Der Code wird nur ausgeführt, wenn das Modul mod_expires zur Verfügung steht
    • <IfModule mod_expires.c> ExpiresActive On ExpiresByType image/gif "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType image/jpg "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType text/css "access 1 month” ExpiresByType application/javascript "access plus 1 year" </IfModule> Aktiviert den Expires-Bereich
    • <IfModule mod_expires.c> ExpiresActive On ExpiresByType image/gif "access plus 1 month" ExpiresByType image/png "access plus 1 month„ ExpiresByType image/jpg "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType text/css "access 1 month” ExpiresByType application/javascript "access plus 1 year" </IfModule> Befehl Datei-Typ Zugriff als Basis Zeitraum (wird zur Basis addiert)
    • Malte Landwehr Auswirkung auf Page Speed http://developers.google.com/speed/pagespeed/insights/ 76 78 80 82 84 86 88 90 Mobile Desktop Ohne Browser-Caching Ohne Browser-Caching
    • Malte Landwehr Auswirkung auf Page Speed http://developers.google.com/speed/pagespeed/insights/ 70 75 80 85 90 95 100 Mobile Desktop Ohne Browser-Caching Mit Browser-Caching
    • Malte Landwehr Achtung bei Relaunch! • 1 Monat vorher auf 1 Woche setzen • 1 Woche vorher auf 1 Tag setzen • 1 Tag vorher auf 1 Stunde setzen • 1 Stunde vorher deaktivieren • Nach Relaunch erst mal deaktiviert lassen, falls es unerwartete Probleme gibt!
    • Malte Landwehr Regelmäßige Änderungen von Bildern • Subdomain ExpiresByType image/gif "modification plus 2 hours" statt access
    • Malte Landwehr Ergänzung • Ganzzahlige Zeiträume • seconds, minutes, hours, days, weeks, months, years • "access plus 1 month 15 days 2 hours"
    • Malte Landwehr Caching in der Wildnis (Startseiten) Zalando Amazon Ladenzeile Spiegel http://httparchive.org/websites.php
    • URLs umschreiben
    • Malte Landwehr Problem • Wenn im Browser /user-123.html aufgerufen wird, soll der Inhalt von /profile.php?userid=123 angezeigt werden. • In der Adresszeile des Browsers soll weiterhin /user-123.html stehen!
    • Malte Landwehr URLs umschreiben RewriteEngine on RewriteCond %{REQUEST_FILENAME} /user-([0-9]*).html RewriteRule (.*) /profile.php?userid=%1 [L] Achtung: Code ist nicht optimal, da nicht defensiv genug!
    • Malte Landwehr RewriteEngine on RewriteCond %{REQUEST_FILENAME} /user-([0-9]*).html RewriteRule (.*) /profile.php?userid=%1 [L] Aktiviert den Rewrite-Bereich Zu erfüllende Bedingung Auszuführende Regel
    • Malte Landwehr RewriteEngine on RewriteCond %{REQUEST_FILENAME} /user-([0-9]*).html RewriteRule (.*) /profile.php?userid=%1 [L] Rewrite Bedingung Dateipfad und -name der aufgerufenen URL Regulärer Ausdruck
    • Malte Landwehr URLs umschreiben RewriteEngine on RewriteCond %{REQUEST_FILENAME} /user-([0-9]*).html RewriteRule (.*) /profile.php?userid=%1 [L] /user- Beliebig viele Ziffern (kann später referenziert werden) .html
    • Malte Landwehr RewriteEngine on RewriteCond %{REQUEST_FILENAME} /user-([0-9]*).html RewriteRule ^(.*)$ /profile.php?userid=%1 [L] Rewrite Regel Regulärer Ausdruck /profile.php?userid= Referenz Flag
    • Standard-Domain
    • Malte Landwehr Problem • Beim Aufruf von example.com soll auf www.example.com weitergeleitet werden. • Der URL-Pfad soll erhalten bleiben, also z.B. example.com/a/1.html soll auf www.example.com/a/1.html zeigen.
    • Malte Landwehr Standard-Domain RewriteEngine On RewriteCond %{HTTP_HOST} !^www.example.com$ RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
    • Malte Landwehr RewriteEngine On RewriteCond %{HTTP_HOST} !^www.example.com$ RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301] Aktiviert den Rewrite-Bereich Zu erfüllende Bedingung Auszuführende Regel
    • Malte Landwehr RewriteEngine On RewriteCond %{HTTP_HOST} !^www.example.com$ RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301] Rewrite Bedingung Host der aufgerufenen URL Regulärer Ausdruck
    • Malte Landwehr Standard-Domain RewriteEngine On RewriteCond %{HTTP_HOST} !^www.example.com$ RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301] Nicht Anfang www.example.com Ende
    • Malte Landwehr RewriteEngine On RewriteCond %{HTTP_HOST} !^www.example.com$ RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301] Rewrite Regel Regulärer Ausdruck www.example.com Flags: • L: Keine weiteren Regeln • R: Art der Weiterleitung
    • PHP-Code in .html-Dateien
    • Malte Landwehr PHP-Code in .HTML-Dateien • PHP-Code wird normalerweise nur in .php Dateien ausgeführt. • Statische Websites mit hunderten von .html-Dateien übernommen. • Kleines PHP-Script ergänzen, das bestimmte Inhalte dynamisch lädt.
    • Malte Landwehr PHP-Code in .HTML-Dateien AddType application/x-httpd-php .php .html .htm
    • Malte Landwehr PHP-Code in .HTML-Dateien AddType application/x-httpd-php .php .html .htm PHP-Code ausführen in diesen Datei-Endungen
    • .jpeg .jpg .png .gif .css Anmerkung II Screenshot entfernt.
    • Canonical für PDF & Co
    • Malte Landwehr Canonical für ein PDF <Files druckansicht.pdf> Header append Link "<http://www.example.omc/artikel.html>; rel="canonical"" </Files>
    • Malte Landwehr Canonical für ein PDF <Files druckansicht.pdf> Header append Link "<http://www.example.com/artikel.html>; rel="canonical"" </Files> Attribut Alternativ: FilesMatch Befehl
    • Malte Landwehr Ergebnis http://web-sniffer.net/
    • Tools
    • .htaccess Editor http://www.htaccesseditor.com/gr.shtml • Gut zum Rumspielen • Nie blind vertrauen
    • SEO Tools ärgern Screenshot entfernt.
    • Danke für Eure Aufmerksamkeit Q&A