Git Product home page Git Product logo

kirby-serp-preview's Introduction

Kirby Search Engine Result Page Preview

Kirby SERP Preview

Note

Used v0.x before? Upgrading is easy! Please read to the migration guide to learn more about the changes in v1.0.

A standalone search engine result page preview to include in any Kirby project. It allows you to preview how your page will look in the search results of Google and other search engines.

Requirements

  • Kirby 4+

Kirby is not free software. However, you can try Kirby and the Starterkit on your local machine or on a test server as long as you need to make sure it is the right tool for your next project. … and when you're convinced, buy your license.

Installation

Composer

composer require johannschopplich/kirby-serp-preview

Download

Download and copy this repository to /site/plugins/kirby-serp-preview.

Getting Started

Create a new section in one of your blueprints:

sections:
  serp-preview:
    type: serp-preview
    siteTitle: "{{ site.title.value }}"
    siteUrl: "{{ site.url }}"
    # Optional field to override the computed title
    titleContentKey: metaTitle
    # Optional default title as fallback if the field above is empty
    defaultTitle: "{{ page.metaTitle.value }}"
    descriptionContentKey: metaDescription
    # Optional default description as fallback if the field above is empty
    defaultDescription: "{{ site.metaDescription.value }}"

Usage

Page Title

Tip

tl;dr The title is computed in the following order:

  1. titleContentKey
  2. defaultTitle
  3. Joining the page title, titleSeparator, and siteTitle.

By default, the SERP preview will render the title of the search engine result page preview by joining the following values with a space:

  • 1️⃣ Page Title
  • 2️⃣ Title Separator (defaults to –)
  • 3️⃣ Site Title

However, you can override the title generation above by using the following section properties:

  • When titleContentKey is set and the corresponding field on the current page is not empty, it will be used as the title.
  • When defaultTitle is set, it will be used as the title if the titleContentKey is empty.

Configuration

Each configuration option is of type string. Some of them support Kirby queries. For example, you can use {{ site.title.value }} for the siteTitle option.

The following table lists all available options:

Option Default Queryable Description
faviconUrl null βœ… The URL to the favicon.
siteTitle "{{ site.title.value }}" βœ… The site title.
siteUrl "{{ site.url }}" βœ… The site URL.
titleSeparator "-" βœ… The title separator between the current page title and the site title. Only applies if no titleContentKey is set and the target field value is empty.
titleContentKey null – The content key for a custom title.
defaultTitle null βœ… Plain text or Kirby query to use as a fallback instead of 1️⃣2️⃣3️⃣ if the titleContentKey is empty.
descriptionContentKey null – The content key for the page's custom description.
defaultDescription null βœ… Plain text or Kirby query to use as a fallback if the descriptionContentKey is empty.
searchConsoleUrl null – If provided, the section will display a link to the Google Search Console.

Migration

Each major release might introduce breaking changes, new features, or deprecate old ones. The migration guide will help you to understand what has changed and how to adapt your project to the new version.

From v0.x to v1.0

  • The descriptionFallback section property has been renamed to defaultDescription. Please update your blueprints accordingly.

License

MIT License Β© 2023-PRESENT Johann Schopplich

MIT License Β© 2023 Dennis Baum

kirby-serp-preview's People

Contributors

grommasdietz avatar johannschopplich avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

kirby-serp-preview's Issues

Custom title override

The plugin currently constructs the title like currentContent[titleContentKey] || [panel.view.title, titleSeparator, siteTitle].join(" "). This is fine for most of the pages. However, When using SERP Preview on site or home, it’s may more common to just have the site title instead of the constructed one as a fallback. Should I provide a pull request for that?

Another or an additional approach could be a titleFallback to get the constructed title (e.g. from a page method) via KQL. It could be integrated like currentContent[titleContentKey] || titleFallback ||Β [panel.view.title, titleSeparator, siteTitle].join(" "). I’m not sure if this would be logically consistent compared to the descriptionFallback, though.

KQL queries in faviconUrl

testing out the serp preview section i notice that i can't use KQL to use the

"{{ site.url }}"/path/to/favicon.ico

it's not really important just mentioning

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.