XML Sitemap

Uit De Vliegende Brigade
Ga naar: navigatie, zoeken

Als je tegenwoordig (2019) een site wilt submitten aan Google, wordt je verwacht een XML Sitemap aan te leveren:

  1. Zorg dat je CMS een sitemap aanmaakt. Ik gebruik WordPress, en de Yoast-plugin kan dat prima
  2. Maak de betreffende site aan als property binnen Google Search Console
  3. Submit de URL met de sitemap.

Yoast XML sitemap

In het geval van Yoast is de sitemap bereikbaar op zoiets als https://example.com/sitemap_index.xml. Deze kun je ook vinden via de interface:

SEO » General - Yoast SEO » Features » XML sitemaps » ? » See the XML sitemap

Yoast: Foutmelding witruimte (juli 2019)

Het probleem

Foutmelding: This page contains the following errors: error on line 2 at column 6: XML declaration allowed only at the start of the document Below is a rendering of the page up to the first error

Mogelijke oorzaken

  • Witruimte aan het begin of het eind van wp-config.php en functions.php-bestanden (twee stuks in mijn geval: Hoshi & Hoshi-child
  • Plugin of theme die witruimte toevoegt

Acties

  • Alle wp-config- & functions-bestanden gecontroleerd op extra witregels. Dat was een paar keer het geval → Bijgewerkt → Geen verschil
  • Theme gewisseld naar Hoshi (main) - Geen verschil
  • Theme gewisseld naar Twentynineteen - Probleem verdwenen
  • Theme gewisseld naar Hoshi - Child - Probleem komt terug
  • Theme gewisseld naar Twenty Nineteen - Probleem verdwenen
  • Theme gewisseld naar Hoshi (main) - Probleem komt terug → De oorzaak lijkt eerder bij Hoshi (Main) te liggen dan bij Hoshi (Child)
  • wp plugin install health-check [1]

Troubleshooting mbv. Health-check:

Twenty Nineteen   Hoshi-main   Hoshi-child   WooCommerce   Resultaat?
---------------   ----------   -----------   -----------   ----------
---               ---          Aan           Aan           Storing
---               Aan          ---           Aan           Storing
Aan               ---          ---           Aan           Geen storing
---               Aan          ---           ---           Geen storing
---               ---          Aan           ---           Geen storing

Conclusies:

  • De storing treedt alleen op als Hoshi (main of child) aanstaan, icm. WooCommerce
  • Omdat de storing ook optreedt bij Hoshi-main, ligt het voor de hand om daar als eerste naar de oorzaak te zoeken.

Storing binnen Hoshi achterhalen

  • Hoshi uninstalled (wp plugin hoshi delete)
  • Opnieuw geïnstalleerd vanaf originele bestanden (versie 1.7) - Geen storing

Het komt door het bestand:

/wp-content/themes/hoshi/framework/modules/woocommerce/load.php

De storing wordt veroorzaakt door de laatste include-regel:

<?php

include_once MIKADO_FRAMEWORK_MODULES_ROOT_DIR.'/woocommerce/woocommerce-functions.php';

if(hoshi_mikado_is_woocommerce_installed()) {
	include_once MIKADO_FRAMEWORK_MODULES_ROOT_DIR.'/woocommerce/options-map/map.php';
	include_once MIKADO_FRAMEWORK_MODULES_ROOT_DIR.'/woocommerce/woocommerce-template-hooks.php';
	include_once MIKADO_FRAMEWORK_MODULES_ROOT_DIR.'/woocommerce/woocommerce-config.php';
	include_once MIKADO_FRAMEWORK_MODULES_ROOT_DIR.'/woocommerce/custom-styles/woocommerce.php';
	include_once MIKADO_FRAMEWORK_MODULES_ROOT_DIR.'/woocommerce/widgets/woocommerce-dropdown-cart.php'; 
}

Overigens, dat wil niet zeggen dat het per se hier aan ligt. Misschien is het iets met widgets: De versie van Hoshi die de storing geeft, heeft allerlei widget-directories. De werkende versie niet.

Ik heb het: Die 'oorspronkelijke bestanden' zijn een nieuwere versie dan wat ik gebruikte → Bug is verholpen in nieuwe versie

Conclusie

  • De 'oorspronkelijke bestanden' die ik gebruikte, betroffen versie 1.7. Op de site gebruikte ik versie 1.5, en daar zat het probleem nog in.

Oplossingen

  • Onduidelijke foutmelding? → Gebruik je wel de laatste versie?

Foutmelding bij updateen Hoshi (juli 2019)

Dit is een vervolg op het hoofdstuk hierboven.

Het probleem

Als ik de installatie van Hoshi overload met versie 1.7, gaat het sitemap-probleem weg, maar krijg ik een nieuw probleem:

Fatal error: Uncaught Error: Call to undefined function hoshi_mikado_get_button_html() 
in /var/www/example.com/wp-content/themes/hoshi/framework/modules/woocommerce/woocommerce-template-hooks.php:192 

Stack trace: 

 #0 /var/www/example.com/wp-includes/class-wp-hook.php(288): hoshi_mikado_woocommerce_loop_add_to_cart_link('<a href="/?add-...') 
 #1 /var/www/example.com/wp-includes/plugin.php(208): WP_Hook->apply_filters('<a href="/?add-...', Array) 
 #2 /var/www/example.com/wp-content/plugins/woocommerce/templates/loop/add-to-cart.php(32): apply_filters('woocommerce_loo...', '<a href="/?add-...', Object(WC_Product_Simple), Array) 
 #3 /var/www/example.com/wp-content/plugins/woocommerce/includes/wc-core-functions.php(249): include('/var/www/example.com/...') 
 #4 /var/www/example.com/wp-content/plugins/woocommerce/includes/wc-template-functions.php(1264): wc_get_template('loop/add-to-car...', Array) 
 #5 /var/www/example.com/wp-includes/class-wp-hook.php(286): woocommerce_template_loop_add_to_cart(Array) 
 #6 /var/www/example.com/wp-includes/class-wp-hook.php(310): WP_Hook->apply_filters('', in /var/www/example.com/wp-content/themes/hoshi/framework/modules/woocommerce/woocommerce-template-hooks.php on line 192

Aanvullende gegevens

De ontbrekende functie hoshi_mikado_get_button_html heb ik in een werkende functie kunnen vinden middels grep -rn . -e "hoshi_mikado_get_button_html" | grep "function" (dus zonder haakjes, want daar staan argumenten!). Hij bevindt zich in bestand

/wp-content/themes/hoshi/framework/modules/shortcodes/button/button-functions.php

en die hele map shortcodes bestaat niet in Versie 1.7.

Acties

  • Oorspronkelijke Hoshi-installatie eerst geplaatst. Daarna 1.7 overloaded → Foutmelding treedt toch op. Misschien ontbreken nu de benodigde include-commando's → Oude versie teruggezet

Oplossing

Zie hoofdstuk hiervoor: In bestand

example.com/wp-content/themes/hoshi/framework/modules/woocommerce/load.php

de laatste regel uit-commentariseren:

<?php

include_once MIKADO_FRAMEWORK_MODULES_ROOT_DIR.'/woocommerce/woocommerce-functions.php';

if(hoshi_mikado_is_woocommerce_installed()) {
	include_once MIKADO_FRAMEWORK_MODULES_ROOT_DIR.'/woocommerce/options-map/map.php';
	include_once MIKADO_FRAMEWORK_MODULES_ROOT_DIR.'/woocommerce/woocommerce-template-hooks.php';
	include_once MIKADO_FRAMEWORK_MODULES_ROOT_DIR.'/woocommerce/woocommerce-config.php';
	include_once MIKADO_FRAMEWORK_MODULES_ROOT_DIR.'/woocommerce/custom-styles/woocommerce.php';
	# include_once MIKADO_FRAMEWORK_MODULES_ROOT_DIR.'/woocommerce/widgets/woocommerce-dropdown-cart.php';
}

Nu doet de site het nog steeds en de XML-sitemap ook. Toch voelt het niet ok:

  • Ik gebruik dus een oude versie van Hoshi
  • Geen idee wat de gevolgen zijn van het uit-gecommentariseerde commando.

Conclusies

  • Gebruik geen visual designers zoals Hoshi - Altijd ellende & geklooi.

Zie ook

Bronnen

Foutmelding Yoast