Structured Data vs WordPress

Data:

Autor:

The Impact of Rich Results on Online Visibility.

Rich results—that is, all additional content formats in search results, on maps, in social media, or on listing pages—have become one of the most important factors influencing brand visibility. In a world where users scan content in a fraction of a second, it is these “extras” that determine whether someone will pause to look at your offer.

Why are rich snippets so important?

They grab attention. Featured snippets, rich snippets, images, ratings, FAQs, and product carousels increase the likelihood that a user will click on your content rather than your competitors’.

They boost credibility Reviews, star ratings, structured data, and more comprehensive information build trust even before the user visits the page.

They improve CTR Better visibility = higher click-through rate. And a higher CTR signals to algorithms that your content is valuable.

They take up more space in search results. Rich results can “dominate” the screen—especially on mobile devices. This is a real advantage over the competition.

They support local SEO. Google Maps extensions, photos, videos, virtual tours, and even short posts on your business profile increase visibility in local search results.

Co warto wdrożyć?Structured Data (Schema)

Extensions in Google Business Profile

Reviews and Ratings

Photos, Videos, and 360° Virtual Tours

FAQs and Q&A Sections

Product Carousels

Link and Information Extensions in Ads

Summary

Extensions are no longer just an “add-on” but the foundation of effective visibility. They help you stand out, build trust, and increase traffic—all without having to increase your advertising budget. It’s worth treating them as a strategic element of your online presence.

Our ad-free WP ZIP plugin, etc.: 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);

<<<

>>>