SEOFX – SEO Agentur Nürnberg
WordPress SEO

WordPress Technical SEO: Checkliste für Entwickler

5 Min. Lesezeit

Diese Checkliste für WordPress Technical SEO richtet sich an Entwickler, die eine Installation technisch sauber aufsetzen oder eine bestehende Site auditieren wollen. Sie geht über Plugin-Einstellungen hinaus und behandelt auch Code-Ebene-Konfigurationen, Server-Einstellungen und häufige technische Fehler.

Grundkonfiguration: WordPress-Einstellungen

Permalink-Struktur: Einstellungen → Permalinks → „Beitragsname” (/%postname%/). Dieser Wert ist SEO-freundlichst. Nach einer Änderung immer auf „Änderungen speichern” klicken, um .htaccess zu aktualisieren.

Blog-Öffentlichkeit: Einstellungen → Lesen → „Suchmaschinen davon abhalten, diese Website zu indexieren” muss DEAKTIVIERT sein. Klassischer Fehler bei Entwicklungsinstallationen, die produktiv gegangen sind.

Canonical Base URL: Stellen Sie sicher, dass siteurl und homeurl (in der Datenbank in wp_options) mit dem bevorzugten Protokoll (https://) und Domainformat (ohne www) übereinstimmen. Abweichungen erzeugen Duplicate Content.

Zeitzone: Einstellungen → Allgemein → Zeitzone auf Ihre lokale Zone setzen. Beeinflusst lastmod-Zeitstempel in der Sitemap.

HTTPS und Sicherheit

// In wp-config.php: erzwingt HTTPS für Admin-Bereich
define('FORCE_SSL_ADMIN', true);

// Sicherheits-Header in functions.php
add_action('send_headers', function() {
    header('X-Content-Type-Options: nosniff');
    header('X-Frame-Options: SAMEORIGIN');
    header('Referrer-Policy: strict-origin-when-cross-origin');
});

HTTPS-Redirect in .htaccess (Apache):

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# www auf non-www umleiten
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]

Über 35 % aller WordPress-Installationen in Produktivumgebungen haben Mixed Content Probleme – verursacht durch Inhalte die nach einer HTTPS-Migration noch auf http:// verweisen.

robots.txt korrekt konfigurieren

WordPress generiert eine Standard-robots.txt. Für SEO empfehlenswert:

User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /?s=              # Suchergebnisse
Disallow: /trackback/
Disallow: /xmlrpc.php
Allow: /wp-admin/admin-ajax.php

Sitemap: https://example.de/sitemap.xml

Für WooCommerce zusätzlich:

Disallow: /cart/
Disallow: /checkout/
Disallow: /my-account/
Disallow: /wishlist/

XML-Sitemap prüfen

Mit Rank Math oder Yoast SEO generierte Sitemaps prüfen:

  • Sitemap erreichbar unter /sitemap.xml oder /sitemap_index.xml
  • Nur öffentliche, indexierte URLs enthalten
  • Kein noindex-Seiten in der Sitemap
  • lastmod-Timestamps korrekt
# Mit curl Sitemap prüfen
curl -s https://example.de/sitemap.xml | head -20

# Alle URLs in Sitemap zählen
curl -s https://example.de/sitemap.xml | grep -c '<loc>'

Praxistipp: Vergleichen Sie die Anzahl der URLs in Ihrer Sitemap mit der Anzahl indexierter Seiten in Google Search Console. Große Diskrepanzen (> 20 %) weisen auf Indexierungsprobleme hin – entweder werden zu viele oder zu wenige Seiten in der Sitemap gelistet.

Canonical-Tags verifizieren

Mit Yoast oder Rank Math werden Canonicals automatisch gesetzt. Prüfen Sie auf Korrektheit:

// Custom Canonical für spezifische Seiten via functions.php
add_filter('wpseo_canonical', function($canonical) {
    if (is_page('spezielle-seite')) {
        return 'https://example.de/richtige-url/';
    }
    return $canonical;
});

Typische Canonical-Probleme:

  • WooCommerce Produkt-Varianten ohne korrekten Canonical
  • Paginierung ohne rel=next/prev (veraltet, aber noch relevant)
  • Tag-Seiten ohne Canonical oder mit falschem Canonical
  • Startseite pointing auf / statt auf kanonische URL

Open Graph und Twitter Cards

Rank Math und Yoast generieren diese automatisch. Manuell für Nicht-Plugin-Installationen:

// Open Graph Tags in functions.php
function custom_og_tags() {
    if (is_singular()) {
        $thumbnail = get_the_post_thumbnail_url(get_the_ID(), 'large');
        echo '<meta property="og:title" content="' . esc_attr(get_the_title()) . '">';
        echo '<meta property="og:type" content="article">';
        echo '<meta property="og:url" content="' . esc_url(get_permalink()) . '">';
        if ($thumbnail) {
            echo '<meta property="og:image" content="' . esc_url($thumbnail) . '">';
        }
    }
}
add_action('wp_head', 'custom_og_tags', 5);

Schema.org Markup

WordPress generiert kein Schema-Markup nativ. Über Rank Math oder Yoast Premium:

Wichtige Schema-Typen für verschiedene Seiten:

  • Startseite/Über uns: Organization oder LocalBusiness
  • Blogbeiträge: BlogPosting mit author, datePublished, dateModified
  • FAQ-Seiten: FAQPage mit Question/Answer
  • Produkte (WooCommerce): Product mit offers, aggregateRating

Manuell im Theme (functions.php):

function add_local_business_schema() {
    if (is_front_page()) {
        $schema = [
            '@context' => 'https://schema.org',
            '@type' => 'LocalBusiness',
            'name' => get_bloginfo('name'),
            'url' => home_url(),
            'telephone' => '+49911...',
            'address' => [
                '@type' => 'PostalAddress',
                'streetAddress' => 'Musterstraße 1',
                'addressLocality' => 'Nürnberg',
                'postalCode' => '90402',
                'addressCountry' => 'DE',
            ],
        ];
        echo '<script type="application/ld+json">' . json_encode($schema) . '</script>';
    }
}
add_action('wp_head', 'add_local_business_schema');

Bildoptimierung für SEO

// Alt-Texte für alle Bilder prüfen
// WP-CLI: Bilder ohne Alt-Text finden
// wp eval 'echo count(get_posts(["post_type" => "attachment", "meta_query" => [["key" => "_wp_attachment_image_alt", "compare" => "NOT EXISTS"]]]));'

// Lazy Loading für alle Bilder aktivieren (WordPress 5.5+ nativ)
// Prüfen ob loading="lazy" korrekt gesetzt wird:
// Bilder im Viewport sollen loading="eager" haben (LCP-Bild!)
add_filter('wp_lazy_loading_enabled', '__return_true');

// LCP-Bild von Lazy Loading ausschließen
add_filter('the_content', function($content) {
    return str_replace(
        'class="wp-post-image" loading="lazy"',
        'class="wp-post-image" loading="eager" fetchpriority="high"',
        $content
    );
});

Das LCP-Bild mit loading="lazy" ist einer der häufigsten LCP-Performance-Fehler in WordPress – es verzögert den Largest Contentful Paint um 200–800 ms.

Caching korrekt einrichten

Page Caching: WP Rocket, W3 Total Cache oder LiteSpeed Cache. Wichtig: Caching nicht für eingeloggte Nutzer aktiv.

Browser Caching:

# In .htaccess (Apache)
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/webp "access plus 1 year"
    ExpiresByType image/jpeg "access plus 1 year"
    ExpiresByType text/css "access plus 1 month"
    ExpiresByType application/javascript "access plus 1 month"
</IfModule>

GZIP-Komprimierung:

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/css application/javascript
</IfModule>

Häufige technische SEO-Fehler in WordPress

Doppelte Inhalte durch:

  • www und non-www ohne Redirect
  • http und https ohne Redirect
  • Trailing Slash und ohne Trailing Slash (/seite/ und /seite)
  • Großschreibung in URLs

Indexierungsprobleme:

  • Tag-Archive ohne noindex (erzeugen Thin Content)
  • Autoren-Archive bei Single-Autor-Blogs ohne noindex
  • Suchergebnisseiten in Sitemap
  • 404-Seiten in der Sitemap

Performance-Probleme:

  • Viele deaktivierte Plugins (laden trotzdem oft Code)
  • jQuery-Migrate geladen (nicht mehr nötig ab WordPress 6.x)
  • Ungenutzte CSS-Stylesheets von Plugins

wp-config.php Optimierungen: Setzen Sie Speicherlimits und Debug-Einstellungen korrekt für Produktivumgebungen: define('WP_DEBUG', false) und define('WP_MEMORY_LIMIT', '256M'). Debug-Mode in Produktion kann sensible Informationen preisgeben und verlangsamt die Site.

WordPress technisch sauber aufsetzen?

Wir auditieren Ihre WordPress-Installation auf alle technischen SEO-Probleme und beheben sie systematisch – für eine solide technische Basis.

WordPress SEO anfragen

Weitere Artikel zu WordPress SEO