Dane strukturalne vs WordPress

Wpływ elementów rozszerzonych na widoczność w sieci

Elementy rozszerzone – czyli wszystkie dodatkowe formaty prezentacji treści w wynikach wyszukiwania, na mapach, w social media czy na stronach ofertowych – stały się jednym z najważniejszych czynników wpływających na widoczność marki. W świecie, w którym użytkownik skanuje treści w ułamku sekundy, to właśnie te „dodatki” decydują, czy ktoś zatrzyma wzrok na Twojej ofercie.

Dlaczego elementy rozszerzone są tak ważne?

  • Przyciągają uwagę Wyróżnione fragmenty, rich snippets, zdjęcia, oceny, FAQ czy karuzele produktów zwiększają szansę, że użytkownik kliknie właśnie w Twoją treść, a nie w konkurencję.
  • Zwiększają wiarygodność Opinie, gwiazdki, dane strukturalne i pełniejsze informacje budują zaufanie jeszcze zanim użytkownik wejdzie na stronę.
  • Poprawiają CTR Lepsza widoczność = wyższy współczynnik klikalności. A wyższy CTR to sygnał dla algorytmów, że Twoja treść jest wartościowa.
  • Zajmują więcej przestrzeni w wynikach wyszukiwania Elementy rozszerzone potrafią „zdominować” ekran – szczególnie na urządzeniach mobilnych. To realna przewaga nad konkurencją.
  • Wspierają pozycjonowanie lokalne Rozszerzenia w Google Maps, zdjęcia, wideo, wirtualne spacery, a nawet krótkie posty w profilu firmy zwiększają widoczność w wynikach lokalnych.

Co warto wdrożyć?

  • Dane strukturalne (schema)
  • Rozszerzenia w Google Business Profile
  • Opinie i oceny
  • Zdjęcia, wideo, wirtualne spacery 360°
  • FAQ i sekcje Q&A
  • Karuzele produktów
  • Rozszerzenia linków i informacji w reklamach

Podsumowanie

Elementy rozszerzone to dziś nie „dodatek”, ale fundament skutecznej widoczności. Wyróżniają, budują zaufanie i zwiększają ruch – a to wszystko bez konieczności zwiększania budżetu reklamowego. Warto je traktować jako strategiczny element obecności online.

Nasza wtyczka do WP ZIP bez reklam itd: Download plugin, WP->Plugins->Add plugin->Upload plugin

Menu pluginu: WP->Settings->Auto Schema & Meta

 $len ? mb_substr($t, 0, $len) . '...' : $t;
}

function asm_opt($key, $default = '') {
    $o = get_option('asm_settings', []);
    return $o[$key] ?? $default;
}

function asm_opt_bool($key, $default = true) {
    $o = get_option('asm_settings', []);
    if (!isset($o[$key])) return $default;
    return (bool)$o[$key];
}

/* -------------------------------------------------------
   SETTINGS PAGE
------------------------------------------------------- */

add_action('admin_menu', function() {
    add_options_page('Auto Schema & Meta', 'Auto Schema & Meta', 'manage_options', 'asm-settings', 'asm_settings_page');
});

function asm_settings_page() {
    if (!current_user_can('manage_options')) return;

    if (isset($_POST['asm_save']) && check_admin_referer('asm_save_settings','asm_nonce')) {
        $opts = [
            // basic
            'org_name'   => sanitize_text_field($_POST['org_name'] ?? ''),
            'org_logo'   => esc_url_raw($_POST['org_logo'] ?? ''),
            'og_default' => esc_url_raw($_POST['og_default'] ?? ''),

            // toggles
            'enable_org'         => !empty($_POST['enable_org']),
            'enable_breadcrumbs' => !empty($_POST['enable_breadcrumbs']),
            'enable_faq'         => !empty($_POST['enable_faq']),
            'enable_product'     => !empty($_POST['enable_product']),
            'enable_article'     => !empty($_POST['enable_article']),
            'enable_local'       => !empty($_POST['enable_local']),
            'enable_searchbox'   => !empty($_POST['enable_searchbox']),
            'enable_cpt'         => !empty($_POST['enable_cpt']),

            // LocalBusiness
            'local_type'   => sanitize_text_field($_POST['local_type'] ?? 'LocalBusiness'),
            'local_street' => sanitize_text_field($_POST['local_street'] ?? ''),
            'local_postal' => sanitize_text_field($_POST['local_postal'] ?? ''),
            'local_city'   => sanitize_text_field($_POST['local_city'] ?? ''),
            'local_country'=> sanitize_text_field($_POST['local_country'] ?? 'PL'),
            'local_phone'  => sanitize_text_field($_POST['local_phone'] ?? ''),
            'local_email'  => sanitize_email($_POST['local_email'] ?? ''),
            'local_nip'    => sanitize_text_field($_POST['local_nip'] ?? ''),
            'local_hours'  => sanitize_textarea_field($_POST['local_hours'] ?? ''),
            'local_contact_type' => sanitize_text_field($_POST['local_contact_type'] ?? 'customer support'),
        ];
        update_option('asm_settings', $opts);
        echo '

Zapisano.

'; } $org_name = asm_opt('org_name', get_bloginfo('name')); $org_logo = asm_opt('org_logo', ''); $og_default = asm_opt('og_default', ''); ?>

Auto Schema & Meta – Ustawienia

Podstawowe

Organization name
Organization logo URL
Domyślny obraz OpenGraph

Włącz/wyłącz elementy

Organization
Breadcrumbs
FAQ
Article schema
Product schema
LocalBusiness
Sitelinks SearchBox
Custom Post Types

LocalBusiness

Typ (np. LocalBusiness, Store, Restaurant)
Ulica
Kod pocztowy
Miasto
Kraj (ISO, np. PL)
Telefon
Email
NIP
Godziny otwarcia (np. Mo-Fr 09:00-17:00)
Contact type (np. customer support)

post_content); } elseif (is_front_page()) { $desc = get_bloginfo('description'); } else return; echo ''."\n"; }, 5); /* ------------------------------------------------------- OPEN GRAPH ------------------------------------------------------- */ add_action('wp_head', function() { global $post; if (is_singular()) { $title = get_the_title($post); $url = get_permalink($post); $desc = asm_excerpt($post->post_content); $type = 'article'; $image = ''; if (has_post_thumbnail($post)) { $img = wp_get_attachment_image_src(get_post_thumbnail_id($post), 'full'); $image = $img[0] ?? ''; } } elseif (is_front_page()) { $title = get_bloginfo('name'); $url = home_url(); $desc = get_bloginfo('description'); $type = 'website'; $image = ''; } else return; if (!$image) $image = asm_opt('og_default', ''); echo ''."\n"; echo ''."\n"; echo ''."\n"; echo ''."\n"; if ($image) echo ''."\n"; }, 6); /* ------------------------------------------------------- BREADCRUMBS ------------------------------------------------------- */ function asm_breadcrumbs() { if (!asm_opt_bool('enable_breadcrumbs', true)) return []; $items = []; $pos = 1; $items[] = [ "@type" => "ListItem", "position" => $pos++, "name" => get_bloginfo('name'), "item" => home_url() ]; if (is_singular()) { global $post; if ($post->post_type === 'post') { $cat = get_the_category($post->ID); if (!empty($cat)) { $cat = $cat[0]; $items[] = [ "@type" => "ListItem", "position" => $pos++, "name" => $cat->name, "item" => get_category_link($cat) ]; } } if ($post->post_type === 'page') { $anc = array_reverse(get_post_ancestors($post)); foreach ($anc as $aid) { $items[] = [ "@type" => "ListItem", "position" => $pos++, "name" => get_the_title($aid), "item" => get_permalink($aid) ]; } } $items[] = [ "@type" => "ListItem", "position" => $pos++, "name" => get_the_title($post), "item" => get_permalink($post) ]; } return $items; } /* ------------------------------------------------------- FAQ SHORTCODES (wiele bloków na stronie) ------------------------------------------------------- */ global $asm_faq; $asm_faq = []; add_shortcode('asm_faq', function($atts, $content = '') { $html = do_shortcode($content); return '
'.$html.'
'; }); add_shortcode('asm_faq_item', function($atts, $content = '') { global $asm_faq; $q = $atts['question'] ?? ''; $a = $content; if ($q && $a && asm_opt_bool('enable_faq', true)) { $asm_faq[] = [ "@type" => "Question", "name" => $q, "acceptedAnswer" => [ "@type" => "Answer", "text" => wp_strip_all_tags($a) ] ]; } return '
'.esc_html($q).'
'.wp_kses_post(wpautop($a)).'
'; }); /* ------------------------------------------------------- MAIN JSON-LD GRAPH ------------------------------------------------------- */ add_action('wp_head', function() { global $post, $product, $asm_faq; $graph = []; /* Organization */ if (asm_opt_bool('enable_org', true)) { $org = [ "@type" => "Organization", "@id" => home_url('#organization'), "name" => asm_opt('org_name', get_bloginfo('name')), "url" => home_url() ]; if (asm_opt('org_logo')) $org["logo"] = asm_opt('org_logo'); $graph[] = $org; } /* LocalBusiness */ if (asm_opt_bool('enable_local', false)) { $lb = [ "@type" => asm_opt('local_type', 'LocalBusiness'), "@id" => home_url('#localbusiness'), "name" => asm_opt('org_name', get_bloginfo('name')), "url" => home_url(), ]; $street = asm_opt('local_street'); $postal = asm_opt('local_postal'); $city = asm_opt('local_city'); $country= asm_opt('local_country', 'PL'); if ($street || $postal || $city || $country) { $lb["address"] = [ "@type" => "PostalAddress", "streetAddress" => $street, "postalCode" => $postal, "addressLocality" => $city, "addressCountry" => $country ]; } if (asm_opt('local_phone')) $lb["telephone"] = asm_opt('local_phone'); if (asm_opt('local_email')) $lb["email"] = asm_opt('local_email'); if (asm_opt('local_nip')) $lb["taxID"] = asm_opt('local_nip'); if ($hours = asm_opt('local_hours')) { // Możesz wpisać np. "Mo-Fr 09:00-17:00, Sa 10:00-14:00" $lb["openingHours"] = array_map('trim', explode(',', $hours)); } if ($ct = asm_opt('local_contact_type')) { $lb["contactPoint"] = [ "@type" => "ContactPoint", "contactType" => $ct, "telephone" => asm_opt('local_phone'), "email" => asm_opt('local_email') ]; } $graph[] = $lb; } /* Breadcrumbs */ $breadcrumbs = asm_breadcrumbs(); if (!empty($breadcrumbs)) { $graph[] = [ "@type" => "BreadcrumbList", "@id" => home_url('#breadcrumbs'), "itemListElement" => $breadcrumbs ]; } /* WebSite + SearchBox */ if (is_front_page() || is_home()) { $website = [ "@type" => "WebSite", "@id" => home_url('#website'), "name" => get_bloginfo('name'), "url" => home_url() ]; if (asm_opt_bool('enable_searchbox', true)) { $search_url = home_url('/?s={search_term_string}'); $website["potentialAction"] = [ "@type" => "SearchAction", "target" => $search_url, "query-input" => "required name=search_term_string" ]; } $graph[] = $website; } /* Page-specific schema */ if (is_page() && !is_front_page()) { $graph[] = [ "@type" => "WebPage", "@id" => get_permalink().'#webpage', "name" => get_the_title(), "url" => get_permalink(), "description" => asm_excerpt($post->post_content), "isPartOf" => [ "@id" => home_url('#website') ] ]; } elseif (is_single() && get_post_type() === 'post' && asm_opt_bool('enable_article', true)) { $img = ''; if (has_post_thumbnail($post)) { $i = wp_get_attachment_image_src(get_post_thumbnail_id($post), 'full'); $img = $i[0] ?? ''; } $article = [ "@type" => "Article", "@id" => get_permalink().'#article', "headline" => get_the_title(), "datePublished" => get_the_date('c'), "dateModified" => get_the_modified_date('c'), "author" => [ "@type" => "Person", "name" => get_the_author() ], "url" => get_permalink(), "description" => asm_excerpt($post->post_content), "mainEntityOfPage" => [ "@type" => "WebPage", "@id" => get_permalink().'#webpage' ], "isPartOf" => [ "@id" => home_url('#website') ] ]; if ($img) { $article["image"] = [ "@type" => "ImageObject", "url" => $img ]; } if (asm_opt_bool('enable_org', true)) { $article["publisher"] = [ "@type" => "Organization", "@id" => home_url('#organization') ]; } $graph[] = $article; } elseif (function_exists('is_product') && is_product() && asm_opt_bool('enable_product', true)) { if (!$product) { $product = wc_get_product(get_the_ID()); } if ($product) { $img = wp_get_attachment_url($product->get_image_id()); $prod = [ "@type" => "Product", "@id" => get_permalink().'#product', "name" => $product->get_name(), "image" => $img, "description" => asm_excerpt($product->get_description()), "sku" => $product->get_sku(), "offers" => [ "@type" => "Offer", "price" => $product->get_price(), "priceCurrency" => get_woocommerce_currency(), "availability" => "https://schema.org/".($product->is_in_stock() ? "InStock" : "OutOfStock"), "url" => get_permalink() ] ]; // AggregateRating z WooCommerce $rating = $product->get_average_rating(); $count = $product->get_rating_count(); if ($rating && $count) { $prod["aggregateRating"] = [ "@type" => "AggregateRating", "ratingValue" => $rating, "reviewCount" => $count ]; } $graph[] = $prod; } } elseif (is_singular() && asm_opt_bool('enable_cpt', true)) { // Inne custom post types -> WebPage $graph[] = [ "@type" => "WebPage", "@id" => get_permalink().'#webpage', "name" => get_the_title(), "url" => get_permalink(), "description" => asm_excerpt($post->post_content), "isPartOf" => [ "@id" => home_url('#website') ] ]; } /* FAQ (wszystkie bloki na stronie) */ if (!empty($asm_faq) && asm_opt_bool('enable_faq', true)) { $graph[] = [ "@type" => "FAQPage", "@id" => get_permalink().'#faq', "mainEntity" => $asm_faq ]; } if (empty($graph)) return; $json = [ "@context" => "https://schema.org", "@graph" => $graph ]; echo ''."\n"; }, 20);