#seo
33 Einzeiler mit diesem Stichwort.
Alle Einzeiler mit Tag seo
Alle URLs aus einem Sitemap-Index sammeln
$curl -s https://example.com/sitemap_index.xml | grep -oP '(?<=<loc>)[^<]+' | xargs -n1 curl -s | grep -oP '(?<=<loc>)[^<]+' | sort -u
Alle URLs aus einer sitemap.xml extrahieren
$curl -s https://example.com/sitemap.xml | grep -oP '(?<=<loc>)[^<]+' | sort -u
Alle URLs einer sitemap.xml parallel auf Statuscode prüfen
$curl -s https://example.com/sitemap.xml | grep -oP '(?<=<loc>)[^<]+' | xargs -P 8 -I{} curl -o /dev/null -s -w '%{http_code} %{url_effective}\n' {} | grep -v '^200 ' | sort
Anzahl der Weiterleitungen und Endziel einer URL anzeigen
$curl -sL -o /dev/null -w 'Weiterleitungen: %{num_redirects}\nZiel: %{url_effective}\nStatus: %{http_code}\n' https://example.com/
Bilder ohne alt-Attribut auf einer Seite finden
$curl -s https://example.com/ | tr '\n' ' ' | grep -oiE '<img[^>]*>' | grep -viE '\balt='
Canonical-Tag einer Seite per curl auslesen
$curl -s https://example.com/ | tr '\n' ' ' | grep -oiE '<link[^>]*canonical[^>]*>'
Domainwechsel: alte Domain in der Datenbank ersetzen
$wp db export /var/www/vhosts/example.com/vor-domainwechsel.sql --path=/var/www/vhosts/example.com/httpdocs && wp search-replace '//alt.example.com' '//example.com' --all-tables --skip-columns=guid --path=/var/www/vhosts/example.com/httpdocs
Echten Googlebot per Reverse-DNS verifizieren
$n=$(host 66.249.66.1 | awk '/pointer/ {print $NF}'); echo "PTR: $n"; host "$n"
Googlebot-Zugriffe im Access-Log auswerten
#grep -i "googlebot" /var/www/vhosts/system/example.com/logs/access_ssl_log | awk '{print $7}' | sort | uniq -c | sort -rn | head -20
H1-Überschriften einer Seite auslesen
$curl -s https://example.com/ | tr '\n' ' ' | grep -oiP '<h1[^>]*>.*?</h1>' | sed -E 's/<[^>]+>//g; s/^\s+|\s+$//g'
Häufigste 404-Fehler im Access-Log finden
#awk '$9 == 404 {print $7}' /var/www/vhosts/system/example.com/logs/access_ssl_log | sort | uniq -c | sort -rn | head -20
hreflang-Tags einer Seite auslesen
$curl -s https://example.com/ | tr '\n' ' ' | grep -oiE '<link[^>]*hreflang[^>]*>'
HTTP-Statuscodes für eine Liste von URLs prüfen
$while read -r u; do printf '%s %s\n' "$(curl -o /dev/null -sS -w '%{http_code}' "$u")" "$u"; done < urls.txt
http, https, www und ohne www auf einmal testen
$for u in http://example.com/ http://www.example.com/ https://example.com/ https://www.example.com/; do curl -s -o /dev/null -m 10 -w "%{http_code} $u -> %{redirect_url}\n" "$u"; done
Interne Links einer Seite extrahieren und zählen
$curl -s https://example.com/ | tr '\n' ' ' | grep -oiE 'href="[^"]+"' | sed -E 's/^href="//I; s/"$//; s/#.*//' | grep -E '^(/|https?://(www\.)?example.com)' | sort | uniq -c | sort -rn
Kaputte Links einer Website mit wget --spider finden
$LC_ALL=C wget --spider -r -l 2 -nd -nv -w 1 -o /tmp/spider.log https://example.com/; grep -A 100 'broken link' /tmp/spider.log
Meta robots und noindex im HTML einer Seite finden
$curl -s https://example.com/ | tr '\n' ' ' | grep -oiE '<meta[^>]*name=.?(robots|googlebot)[^>]*>'
Mixed Content im HTML einer HTTPS-Seite finden
$curl -s https://example.com/ | tr '\n' ' ' | grep -oiE '(src|srcset|data-src)="http://[^"]+"|<link[^>]+href="http://[^"]+"|url\(.?http://[^)]+\)' | sort -u
Permalinks und Rewrite-Regeln neu erzeugen
$wp rewrite flush --path=/var/www/vhosts/example.com/httpdocs
Prüfen, ob WordPress Suchmaschinen aussperrt
$wp option get blog_public --path=/var/www/vhosts/example.com/httpdocs
robots.txt abrufen und Disallow-Regeln anzeigen
$curl -s https://example.com/robots.txt | grep -iE '^\s*(user-agent|disallow|allow|sitemap):'
Seite als Googlebot abrufen und mit normalem Abruf vergleichen
$for ua in 'Mozilla/5.0 (X11; Linux x86_64)' 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)'; do curl -s -o /dev/null -A "$ua" -w "%{http_code} %{size_download} Bytes $ua\n" https://example.com/; done
Soft 404 prüfen: liefert eine nicht vorhandene Seite wirklich 404
$curl -s -o /dev/null -w '%{http_code} %{redirect_url}\n' https://example.com/diese-seite-gibt-es-nicht-$RANDOM
Strukturierte Daten (JSON-LD) einer Seite auslesen
$curl -s https://example.com/ | tr '\n' ' ' | grep -oP '<script[^>]*application/ld\+json[^>]*>.*?</script>'
Suchmaschinen-Sperre in WordPress aufheben
$wp option update blog_public 1 --path=/var/www/vhosts/example.com/httpdocs
Title und Meta Description einer Seite per curl auslesen
$curl -s https://example.com/ | tr '\n' ' ' | grep -oiE '<title[^>]*>[^<]*</title>|<meta[^>]*name=.?description[^>]*>'
Wartungsmodus auf Status 503 und Retry-After prüfen
$curl -s -o /dev/null -D - https://example.com/ | grep -iE '^(HTTP/|retry-after:)'
Website-Adresse siteurl und home ändern
$wp option update siteurl 'https://example.com' --path=/var/www/vhosts/example.com/httpdocs && wp option update home 'https://example.com' --path=/var/www/vhosts/example.com/httpdocs
Website-Adresse siteurl und home auslesen
$wp option get siteurl --path=/var/www/vhosts/example.com/httpdocs && wp option get home --path=/var/www/vhosts/example.com/httpdocs
Weiterleitungskette einer URL mit Statuscodes anzeigen
$curl -sIL "http://example.com/" | grep -iE "^(HTTP/|location:)"
Weiterleitungskette einer URL verfolgen
$curl -sSIL http://example.com/ | grep -iE '^(HTTP/|location:)'
WordPress-Datenbank von http auf https umstellen
$wp db export /var/www/vhosts/example.com/vor-https.sql --path=/var/www/vhosts/example.com/httpdocs && wp search-replace 'http://example.com' 'https://example.com' --skip-columns=guid --path=/var/www/vhosts/example.com/httpdocs
X-Robots-Tag-Header einer URL prüfen
$curl -s -o /dev/null -D - https://example.com/ | grep -i '^x-robots-tag'