I dag siger jeg farvel til Rank Math. I et stykke tid var det et af de faste plugins i dette hus, og i den første periode opfyldte det sin mission med værdighed, og for at være retfærdig må jeg sige, at det ikke har forårsaget store problemer, og der er heller ikke dukket bugs op hos dem, der løber i cirkler og vifter med armene. Men tingene har ændret sig.
Baggrund
Hvis du leder efter sammenligninger af SEO-plugins, vil du for det meste finde sammenligninger mellem de to mest brugte plugins: Rank Math og Yoast. Det sker, fordi der i mange af disse sammenligninger er en interesse i at placere et affiliate-link efter en positiv anmeldelse, hvor kritik normalt undgås af indlysende grunde.
Efter at have prøvet den gratis version i et stykke tid begyndte jeg i midten af 2021 at bruge Rank Math Pro, og jeg har gennemgået nogle af de nye funktioner og ændringer. Nu har jeg besluttet at afinstallere det og gå tilbage til The Seo Framework, hovedsageligt af tre grunde, som jeg forklarer i rækkefølge efter betydning, og som er rent personlige værdsættelser.
1. Det er ikke længere let
Det er en kendsgerning, at det er blevet tykkere. Selvom Rank Math er meget komplet og ikke er et af de tungeste plugins (Yoast er endnu tungere), fordi du kan deaktivere de moduler, du ikke ønsker at bruge, er det blevet tykkere. Og det er ikke godt. Indlæsningshastighed er stadig en af de vigtigste positioneringsfaktorer for de fleste søgemaskiner.
Ideen om en "schweizerkniv"-plugin, der sparer dig for at bruge andre plugins, kan være tiltalende i starten, indtil du opdager, at selv hvis du bruger fem, seks eller flere letvægts-plugins til at gøre alle de ting, som Rank Math gør, bruger du færre ressourcer.
2. Det er ikke længere billigt
Selv om det for nogle vil være relativt, har Rank Math PRO hævet sin attraktive mindstepris fra 59 dollars til 95,88 dollars. Det er en stigning på 36,88 dollars på én gang. En slutpris, der næsten er tæt på den gennemsnitlige pris for beskeden hosting. Selv om årsagerne til stigningen kan give god forretningsmæssig mening, føler jeg, at denne stigning kunne have været progressiv for langtidskunder og er for høj for deres basislicens, som typisk bruges af bloggere til personlige websteder med beskeden eller ingen indkomst.
Til deres forsvar må jeg sige, at da de bad om en begrundelse for opsigelsen, tilbød de mig at beholde den pris, jeg havde betalt de sidste tre år, og få differencen refunderet, men jeg besluttede at gennemføre ændringen, fordi stigningen ville komme før eller siden, og fordi jeg var mere bekymret for punkt 1.
3. Insisteren på generativ AI
Mens de nye muligheder, de tilføjede for nylig, var relativt fornuftige og nyttige, synes de nu at være opsat på at indlejre betalte AI-baserede historier for at generere indhold, jeg er ligeglad med, og andre ret overflødige funktioner.
De har endda indført kunstig intelligens til de første automatiserede svar på deres supporthenvendelser. Noget, som jeg synes er ret lamt for en betalt tjeneste. Det er bare en klodset automatisering med links til deres dokumentation for at "filtrere" forespørgsler, der forsinker den endelige svartid.
Alt, hvad et SEO-plugin gør, kan gøres uden.
Der er absolut intet, som et SEO-plugin gør, som du ikke selv kan gøre med en lille smule kode. Jeg vil endda gå så langt som til at sige, at du kan rangere lige så godt uden at bruge noget SEO-plugin. Jeg har gjort det i mange år uden at bruge dem, og jeg har aldrig oplevet noget mærkbart nedbrud i min beskedne, men nødvendige positionering.
Disse plugins skal ses som en hjælp, et støtteværktøj. Aldrig som en løsning eller en mirakeldrik.
Det første spørgsmål, jeg altid stiller mig selv, før jeg installerer et plugin, er: Kan jeg gøre det, jeg annoncerer, uden at bruge et plugin? Hvis svaret er ja, prøver jeg det.
Hvis du foretrækker ikke at komplicere dit liv, eller hvis du ikke tør, kan du bruge et plugin. Men prøv at vælge letvægts-plugins, der ikke går ud over indlæsningstiden.
Forbehold: Intet her skal fortolkes som generelle eller universelle løsninger, fordi de er begrænset til de specifikke forhold i mit miljø. Du bliver nødt til at studere dit.
Flyt fra Rank Math til SEO Framework
Seo Framework er et gratis plugin skabt af Sybre Waaijer, der har nogle betalte versioner med premium-udvidelser og andre forbedringer. Udviklerne hævder, at det er "det eneste SEO-plugin, der følger Googles webmaster-retningslinjer til punkt og prikke".
Ved ikke at inkludere fløjter og pynt er den meget lettere, fordi den fokuserer på de nødvendige grundlæggende funktioner, og du bemærker straks en mærkbar forbedring af ydeevnen i både administrationsområdet, på siden og i vægten af DB'en. Med ændringen er den faldet fra 623Mb til 448Mb.
Migrationsprocessen forklares her.
*Den logiske rækkefølge for migreringen er at installere SEO Framework først UDEN at deaktivere eller afinstallere Rank Math, fordi vi ikke kun skal importere dens data, vi skal også bruge den til at hente data fra andre funktioner, hvis du brugte dem.
*Før du installerer SEO Framework, råder jeg dig til at downloade en kopi af din robots.txt, hvis du har nogen brugerdefinerede indstillinger, da plugin'et opretter en ny og overskriver den. Og hvis du leder efter, hvordan du indstiller brødkrummer med The SEO Framework, er det her.
Du kan installere det på den traditionelle måde fra WP plugin management eller ved at downloade og installere installationsprogrammet "Extension Manager" fra deres side. Uanset hvad skal vi bruge en udvidelse kaldet Transport, som følger med i downloadet, for at importere Rank Math-data. Begge metoder er forklaret i deres dokumentation.
Når vi kører Transport, vælger vi Rank Math, vælger det, vi vil importere, og kører det. Processen er hurtig. Denne blog har allerede tusindvis af poster, og processen blev gennemført på mindre end et minut.
Det næste logiske skridt ville være at konfigurere plugin' et og afinstallere "Extension Manager" og slippe af med Rank Math, men lad os først gå tilbage til Rank Math for at downloade flere filer, som vi skal bruge.
De første kopier, vi gemmer, er de komplette konfigurationsfiler i tilfælde af, at vi fortryder det eller vil genskabe det senere for at gendanne noget specifikt.
Vi vil gøre dette fra Rank Math SEO/ Status og værktøjer.
Alternativer til Rank Math-funktioner
Rank Math har en række funktioner, som SEO Framework ikke har. Det er i princippet fint, men når plugin'et er fejlbehæftet, vil fejlen sprede sig til alle disse funktioner.
Disse funktioner går tabt, når de afinstalleres, så vi vil sørge for at genskabe dem på andre måder.
Fordelen ved det er, at selv om vi har dem hver for sig, har vi mere kontrol over dem, og det bliver også lettere at løse problemer ved at have dem isoleret.
Omdirigeringer
Rank Math giver dig mulighed for at oprette automatiske 301 (og andre) redirects, når du ændrer en URL eller sletter et indlæg eller en side. Hvis vi har brugt dette værktøj, går vi til plugin'et og downloader en kopi af listen over de omdirigeringer, vi har lavet.
Fra menuen Rank Math SEO/ Omdirigeringer/Eksport kommer vi til værktøjet"Import og eksport". Når du klikker der(1), finder du dette skærmbillede.
Mulighed(2) og(3) downloades kun for at have to kopier i disse formater og for at kunne hente omdirigeringerne manuelt (hvis der ikke er mange) eller hele batchen med importværktøjet i"Redirection"-pluginet, hvis noget går galt, eller hvis vi vælger at bruge dette plugin i stedet for at lægge dem manuelt ind i .htaccess.
Den sikreste mulighed nu er(4), fordi dette vil skrive alle de omdirigeringer, du har lavet fra Rank Math, til din .htaccess. Når du har klikket på"Synkroniser med .htaccess", skal du navigere til .htaccess og kontrollere, at omdirigeringerne er blevet tilføjet, de skal vises lige i slutningen af filen som vist på billedet nedenfor.
Indholdsfortegnelser
Opdateringen 1.0.104 af Rank Math i den gratis version af 19. december 2022 tilføjede en ny indholdsfortegnelsesblok. Hvis vi har tilføjet tabeller ved hjælp af denne Rank Math-blok, vil vi blive konfronteret med denne tekst, når vi deaktiverer den:
"Dit websted understøtter ikke rank-math/toc-blokken. Du kan lade denne blok være intakt, konvertere dens indhold til en brugerdefineret HTML-blok eller fjerne den helt."
Den gode nyhed er, at hvis du lader det være, som det er, vil tabellerne stadig blive vist, den dårlige nyhed er, at hvis du prøver at redigere dem eller fjerne dem, vil du ikke kunne tilføje dem igen. Så vi lader dem være, som de er nu, og leder efter en erstatning.
Den nemmeste og hurtigste løsning er at bruge et af de letteste og mest effektive plugins, jeg har prøvet til indholdsfortegnelser: Simple TOC, da det ikke tilføjer JavaScript eller CSS, medmindre harmonika-menuen er aktiveret.
Indholdsfortegnelse uden plugin
Hvis du ikke vil bruge et plugin og foretrækker at gøre livet lidt mere kompliceret, kan du prøve disse to metoder(1) og(2). Jeg prøvede begge metoder og besluttede mig for plugin'et, fordi nogle fejl overbeviste mig om, at plugin'et var den hurtigste, mest effektive og sikreste måde.
Hvis du ikke har mange plader, behøver du kun at udskifte dem én efter én i hånden.
Men hvis du har mange af dem (som i mit tilfælde), kan du nemt finde dem. Det gør du ved at gå til phpMyAdmin, vælge din database og under fanen "Søg" i ord eller værdier skrive "rank-math/toc-block"(1), vælge "the exact phrase as substring"(2) og tabellen "wp-posts" (3) og klikke på "Continue" (4).
Dette vil vise dig en liste over alle de indlæg, hvor du har tilføjet en Rank Math-indholdsfortegnelsesblok, datoen, titlen på indlægget eller siden og endda url-sluggen.
Nu er det tid til at erstatte dem, i mit tilfælde erstattede jeg dem med en genanvendelig blok, som jeg lagde ud med GenerateBlocks Pro ved at sætte Simple TOC-blokken ind i en container, som jeg stylede, så den matchede udseendet af de tabeller, jeg havde sat ind med Rank Math. Du kan se formateringen i tabellen øverst i dette indlæg.
På den måde kan jeg automatisk indsætte dem, hvor jeg vil, og få dem vist eller ikke vist afhængigt af overskrifterne i hvert indlæg takket være GeneratePress Elements, da dette er noget, som Simple TOC-pluginet ikke giver os mulighed for at gøre.
Om den oprindelige indholdsfortegnelsesblok i WordPress
Denne blok blev tilføjet som en eksperimentel blok i Gutenberg 13.3.0 i maj 2022, og nogle blogs sagde på det tidspunkt, at den ville blive integreret i WP 6.1, men det var ikke sandt. Pointen er, at nogen troede, at den var blevet fjernet fra "eksperimental"-tagget, men det blev ikke vist på det tidspunkt, fordi WordPress 6. 1 integrerede fra version 13.1 til 14.1, og indholdsfortegnelsen er en del af Gutenberg 14.4.0. I dag er der ingen dato. Så vi bliver nødt til at vente på, at det bliver stabilt og integreret som en del af kernen.
Forleden spurgte jeg, om der var en køreplan for dette, og her er , hvad Birgit Pauli-Haack svarede.
"Blokken med indholdsfortegnelsen er stadig et igangværende projekt. Der er endnu ingen tidslinjer for, hvornår blokken kommer ud af sin eksperimentelle fase."
Hvis du vil prøve det, kan du i øjeblikket kun gøre det ved at installere Gutenbergs test-plugin.
Billed-SEO
Rank Math har et modul, der hedder billed-SEO. Selv om ikke alle, der arbejder med positionering, tillægger dette aspekt stor værdi, er det for en blog som denne med en stor mængde vignetter interessant at positionere billeder, fordi de genererer en ikke ubetydelig mængde organisk trafik, der normalt er relativt stabil.
Det er faktisk lidt af et placebo, for det, den gør, er at indsætte titlen på indlægget i ALT for den resulterende html.
Det vil sige, at det kun anvendes dynamisk, når indholdet vises, det gemte indhold ændres ikke. Det udfylder ikke de manglende ALT-felter i WordPress, men det er bedre end ingenting, mens du udfylder dem, du har udeladt.
Det kan også gøres med et par funktioner og filtre, som vi tilføjer til functions.php i vores skabelon.
Snippet til at tilføje ALT (postens titel) til alle billeder
//Establecer el título de la entrada como texto alternativo de imagenes en post y páginas. Si existe Alt no hará nada
function add_alt_tags( $content ) {
preg_match_all( '/<img (.*?)\/>/', $content, $images );
if ( ! is_null( $images ) ) {
foreach ( $images[1] as $index => $value ) {
if ( preg_match( '/alt=""/', $value ) ) {
$new_img = str_replace(
'alt=""',
'alt="' . esc_attr( get_the_title() ) . ' '. $index . '"',
$images[0][$index] );
$content = str_replace(
$images[0][$index],
$new_img,
$content );
}
}
}
return $content;
}
add_filter( 'the_content', 'add_alt_tags', 99999 );
Snippet til at tilføje ALT (titlen på indlægget) til det fremhævede billede
//Establecer el título de la entrada como ALT de la imagen destacada
function lwp_37481_featured_alt_text($metadata, $object_id, $meta_key, $single) {
if(isset($meta_key) && $meta_key == '_wp_attachment_image_alt'
&& get_post_thumbnail_id() == $object_id
&& $single === true
){
$original_value = get_post_meta(
$object_id, '_wp_attachment_image_alt', false
);
if(empty($original_value)){
return get_the_title();
}
}
return $metadata;
}
add_filter('get_post_metadata', 'lwp_37481_featured_alt_text', 10, 4);
Visuel tag- og kategori-editor
En anden nysgerrig og interessant mulighed, hvis du placerer tags (noget, som SEO'er normalt kasserer og endda anbefaler ikke at indeksere dem), der kan give dig en vis glæde, hvis du arbejder godt med det, er, at Rank Math tilføjede TinyMCE-editoren til kategorierne og tags for at kunne tilføje billeder og give et mere attraktivt format til teksten, som om det var et indlæg.
Når man afinstallerer Rank Math, forsvinder editoren, men den kan genskabes, også med et par funktioner, der skal lægges ind i functions.php.
Advarsel: For kategorier fungerer koden, som den skal, men for tags skjuler den ikke det gamle beskrivelsesfelt og tilføjer ikke billedteksten, så hvis den ikke tilføjes eller tilføjes som et enkelt afsnit under billedet, fungerer den ellers.
Her er resultatet. Til venstre den simple native tag-editor og til højre TinyMCE efter tilføjelse af snippet.
Uddrag til etiketter:
/* Añade editor TinyMCE a etiquetas */
if( is_admin() ) {
// Eliminar filtrado de HTML
remove_filter( 'pre_term_description', 'wp_filter_kses' );
remove_filter( 'term_description', 'wp_kses_data' );
// Agregar nuevo campo de descripcion
add_filter('edit_tag_form_fields', 'filter_wordpress_tag_editor');
function filter_wordpress_tag_editor($tag) {
?>
<table class="form-table">
<tr class="form-field">
<th scope="row" valign="top"><label for="description"><?php _ex('Description', 'Taxonomy Description'); ?></label></th>
<td>
<?php
$settings = array('wpautop' => true, 'media_buttons' => true, 'quicktags' => true, 'textarea_rows' => '15', 'textarea_name' => 'description' );
wp_editor(html_entity_decode($tag->description , ENT_QUOTES, 'UTF-8'), 'description1', $settings);
?>
<br />
<span class="description"><?php _e('The description is not prominent by default; however, some themes may show it.'); ?></span>
</td>
</tr>
</table>
<?php
}
// Oculta el campo antiguo de descripción
add_action('admin_head', 'remove_default_tag_description');
function remove_default_tag_description()
{
global $current_screen;
if ( $current_screen->id == 'edit-tag' )
{
?>
<script type="text/javascript">
jQuery(function($) {
$('textarea#description').closest('tr.form-field').remove();
});
</script>
<?php
}
}
}
Og det med kategorierne:
/* Añadir editor TinyMCE a categorías */
if( is_admin() ) {
// Eliminar filtrado de HTML
remove_filter( 'pre_term_description', 'wp_filter_kses' );
remove_filter( 'term_description', 'wp_kses_data' );
// Agregar nuevo campo de descripcion
add_filter('edit_category_form_fields', 'filter_wordpress_category_editor');
function filter_wordpress_category_editor($tag) {
?>
<table class="form-table">
<tr class="form-field">
<th scope="row" valign="top"><label for="description"><?php _ex('Description', 'Taxonomy Description'); ?></label></th>
<td>
<?php
$settings = array('wpautop' => true, 'media_buttons' => true, 'quicktags' => true, 'textarea_rows' => '15', 'textarea_name' => 'description' );
wp_editor(html_entity_decode($tag->description , ENT_QUOTES, 'UTF-8'), 'description1', $settings);
?>
<br />
<span class="description"><?php _e('The description is not prominent by default; however, some themes may show it.'); ?></span>
</td>
</tr>
</table>
<?php
}
// Oculta el campo antiguo de descripción
add_action('admin_head', 'remove_default_category_description');
function remove_default_category_description()
{
global $current_screen;
if ( $current_screen->id == 'edit-category' )
{
?>
<script type="text/javascript">
jQuery(function($) {
$('textarea#description').closest('tr.form-field').remove();
});
</script>
<?php
}
}
}
*Jeg er ked af, at jeg ikke kan huske, hvor jeg fandt disse uddrag, så jeg kan give kredit til deres forfattere, men hvis jeg finder dem, gør jeg det.
IndeksNu
Rank Math integrerede Index Now i version 3.0.5 i januar 2022.
Hvordan fungerer IndexNow?
Protokollen fungerer på den måde, at websites kan indsende URL'er til IndexNow API én gang, og den deles med alle deltagende søgemaskiner. Så du behøver kun at indsende dine webstedsændringer og URL'er én gang, og alle deltagende søgemaskiner vil være opmærksomme på de seneste ændringer på dit websted, så de kan gennemgå, indeksere og afspejle disse ændringer tidligere i søgeresultaterne.
Selvom brugen af IndexNow ikke garanterer, at søgemaskinerne vil crawle eller indeksere dine sider, kan du i det mindste være sikker på, at de har fået besked om ændringerne.
SEO handler ikke kun om Google, der er fem søgemaskiner, som deltager i IndexNow:
Microsoft Bing, Naver, Seznam.cz, Yandex og Yep.
Det er ikke noget problem at fortsætte med at bruge det, du har to alternativer.
1. Brug Microsoft Bing IndexNow plugin, som du finder i WordPress repository. Når du installerer det, er der allerede oprettet en API-nøgle. Du kan lade den stå på automatisk og glemme alt om den. Hver gang du udgiver eller redigerer et indlæg, bliver det sendt til IndexNow.
2. Send URL'erne manuelt fra browseren som beskrevet her. For andre spørgsmål, se venligst deres FAQ.
rel="sponsoreret
Selvom du stadig kan tilføje en nofollow til betalte og tilknyttede links, anbefaler Google at tilføje rel="sponsoreret" til disse links.
Rank Math har i sin linkboks tilføjet muligheden for at tilføje dette tag med et enkelt klik.
Nu er der ikke andet valg end at tilføje dem manuelt, da det er svært at finde en automatiseret løsning, der med sikkerhed "ved", hvilke links der er eller ikke er affiliate-links.
Strukturen ser sådan ud, og du behøver kun at redigere blokken som html for at indsætte tagget.
<a rel="sponsored" href="https://ejemplo.com">Texto del enlace</a>
Komplet afinstallation af Rank Math
Nu er det tid til at dræbe plugin'et. Rank Math tilbyder et filter til fuldstændig fjernelse af alle Rank Math-data.
/**
* Filtro para eliminar datos de Rank Math de la base de datos
*/
add_filter( 'rank_math_clear_data_on_uninstall', '__return_true' );
Denne kode skal placeres i filen rank-math.php i mappen med din skabelon (eller i functions.php), og når du vender tilbage til listen over plugins, vises denne meddelelse, der advarer dig om, at alle data slettes, når du deaktiverer det og sletter plugin'et
Overraskelse, sletning af data var ikke en sådan ting.
Mange udviklere laver plugins på en sådan måde, at når man geninstallerer dem, får man noget af den sidste konfiguration tilbage, og det er ikke alle, der har en komplet afinstallationsmulighed. Andre lover, at oprydningen er komplet, men det er den ikke, for det er kartofler.
Det er meningen, at disse data skal slettes automatisk hver 30. dag, men som du kan se på billederne nedenfor, har vi stadig fire tabeller på i alt mere end 137 Mb med rester af Rank Math, der er mere end et år gamle.
Her er fire:
wp_actionscheduler_actions
wp_actionscheduler_logs
wp_actionscheduler_krav
wp_actionscheduler_groups
For at tømme disse tabeller brugte jeg Advanced Database Cleaner Pro, men du kan også gøre det fra phpMyAdmin.
Disse fire tabeller oprettes og udfyldes af plugins som Woocommerce, The Events Calendar, WP Rocket, Rank Math og nogle andre.
Hvis du ikke bruger disse plugins, kan du tømme disse tabeller uden problemer. Det skader dog aldrig at tjekke dem og lave en backup af databasen først eller have en nylig fuld backup for en sikkerheds skyld.
At du laver en backup før. Har du allerede lavet en backup? Så sig ikke, at jeg ikke advarede dig.
Når oprydningen er færdig, behøver du kun at kigge på SEO Framework's konfiguration for at opdage, at der er meget lidt at ændre, da det grundlæggende er forudkonfigureret.
Ud over den positive indvirkning på indlæsningshastigheden, som afinstallationen af Rank Math har, bemærkede jeg kort tid efter, at det nye plugin, som jeg brugte tidligere, ikke behøver nogen opmærksomhed; når det først er sat op, kan du glemme alt om det.
Oversæt metatitel og metabeskrivelse af The Seo Framework for hvert sprog (hvis du bruger Polylang)
Seo Framework er kompatibel med Polylang, WPML, MultilingualPress og delvist med TranslatePress, men i Polylang vises plugin-strengene til oversættelse af metatitlen og metabeskrivelsen for hvert sprog på dets rodside, dvs. /es/, /en/, /de/ osv.
Desuden anbefaler de i Polylang-hjælpen, at bloggens startside skal være en statisk side og ikke en dynamisk for at kunne tilføje disse strenge, hvilket gør tingene endnu mere komplicerede.
Men efter en masse gravearbejde fandt jeg her en måde at registrere dem i Polylang for at oversætte dem. Selv om koden er næsten syv år gammel, og det ikke er den bedste måde at gøre det på, da det kan gå i stykker med en fremtidig opdatering af plugin'et, så virker det nu.
//Para añadir en el functions.php de tu plantilla
if ( function_exists( 'the_seo_framework' ) ) {
$the_seo_framework = the_seo_framework();
$description = $the_seo_framework->get_option( 'homepage_description' );
pll_register_string( 'homepage_description', $description ?: 'Empty description!', 'seo_framework', false );
}
Sproguafhængigt kort i Seo Framework med Polylang
I princippet vil du i plugin-administrationen kun finde et enkelt kort, som vil være placeret på:
https://jrmora.com/sitemap.xml
Men hvis du bruger Polylang, vil du, afhængigt af din installation, kunne finde kortene for hvert sprog, du bruger, for at sende dem til Bing Webmaster Tools og Google Search Console til crawling i forskellige formater (eksempel på engelsk kort):