Yoast negeert je instelling? Kijk waar je werkt

Een korte tip voor wie met een lokale kopie van een site werkt.

Omslag: Lokaal is niet live

Ik zette een pagina op “niet laten vinden door zoekmachines” (noindex). Uit de sitemap verdween hij meteen, maar de pagina zelf bleef zeggen: vindbaar. Opnieuw opslaan hielp niet. Bij een andere pagina werkte dezelfde instelling in één keer.

Yoast bewaart per pagina een eigen samenvatting van de SEO-gegevens, en werkt die alleen bij op een live site. Op een lokale ontwikkelomgeving weigert Yoast dat, bewust. Een pagina die zo’n samenvatting nog niet had, gebruikt gewoon de instelling. Maar een pagina met een samenvatting uit de tijd dat de site nog live draaide, blijft de oude waarde tonen. En na het kopiëren van een live site naar je eigen computer hebben bijna alle pagina’s zo’n oude samenvatting.

Wat je eraan hebt

Twijfel je op je lokale kopie of een SEO-instelling werkt: weet dat Yoast je daar mogelijk een verouderd beeld geeft. Op de live site werkt het gewoon.

Voor de techneuten

Getest met: Yoast SEO op WordPress 7.1.2, Local, WP_ENVIRONMENT_TYPE = local, na een Duplicator-import.

Yoast’s indexables (wp_yoast_indexable) worden alleen op productie gebouwd en bijgewerkt:

$ wp yoast index --reindex
Je WordPress omgeving draait op een niet productie site. Indexables kunnen alleen worden aangemaakt op productie omgevingen.

Bestaat er een record, dan wint dat van de postmeta _yoast_wpseo_meta-robots-noindex. Zonder record leest Yoast de meta rechtstreeks.

Oplossing op Local: alleen het verouderde record verwijderen, via Yoast’s eigen repository en niet met SQL:

wp eval '$r = YoastSEO()->classes->get( \Yoast\WP\SEO\Repositories\Indexable_Repository::class );
$r->find_by_id_and_type( 1552, "post", false )->delete();'

Daarna toont de pagina noindex. Op live volstaat gewoon opslaan.