Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SEO is Not a Four-Letter Word

SEO is Not a Four-Letter Word

How can your startup get more users to see your app in the first pages of Google results without spending money on advertising? Together we’ll walk through a way to create your own data structures for Google to consume using JSON-LD and the data you already have–no gems or cursing necessary.

Presented at RubyNation 2017

Avatar for Katherine McClintic

Katherine McClintic

June 16, 2017
Tweet

Other Decks in Programming

Transcript

  1. The Process •  What is SEO? •  Providing data to

    search engines •  Microdata •  Google’s Search Console and Structured Data Testing Tool •  JSON-LD •  JSON-LD’s place in your Rails app @scarletalphabet
  2. Surfacing Your Data •  Search engines can pick up on

    keywords – Primarily in <title> tags and other <meta> tags •  Intentionally providing relevant data for a search engine to consume is more effective – Is this restaurant family-friendly? – Does this product have a good review? – Is this expensive? – Where is this located? @scarletalphabet
  3. Checking Existing Data •  Structured Data – Data with a high

    level of organization – Easy for search engines to digest – Depending which context you use, some data will be mandatory and some will be optional •  Common older format: Microdata – name-value pairs (known as items) defined according to a context @scarletalphabet
  4. Microdata •  Used to nest structured data within HTML content

    –  Interwoven with the user-visible text •  Syntax: –  itemscope, itemtype, and itemprop @scarletalphabet
  5. JSON-LD •  JavaScript Object Notation for Linked Data –  Looks

    like plain JSON with some syntactical differences –  Like microdata it consists of properties and values •  Preferred by most search engines (including Google) over microdata format •  Not interwoven with user- visible text { "@context": "http://schema.org", "@type": "Restaurant", "address”: { "@type": "PostalAddress", "addressLocality": "Washington", "addressRegion": "DC", "postalCode": "20004", "streetAddress": "900 F St NW” }, "name": "Gordon Biersch - F Street”, … } @scarletalphabet
  6. Translating to Ruby •  A schema org helper –  Define

    your json_ld_tag –  Define your method that builds the data structure for your restaurant, product, event, etc. –  Methods to conditionally add certain nested data •  Inserting into views –  Calling the json_ld_tag method with the object(s) at hand { "@context" => http://schema.org, "@type" => "Restaurant", "name" => restaurant.name, "description" => restaurant.description, "photo" => restaurant.main_image_url, "telephone" => restaurant.address.phone, "geo" => { "@type" => "GeoCoordinates", "latitude" => restaurant.address.latitude, "longitude" => restaurant.address.longitude, }, … } @scarletalphabet
  7. When the Data Doesn’t Quite Fit •  You don’t know

    if a property will always have a value – Consider tapping into your json_ld method to insert that value only if it is present •  You have data that doesn’t fit a particular representation – "additionalProperty" wildcard @scarletalphabet
  8. Not a Cure-All •  Search rankings can be tough to

    climb in a busy or generalized market – Specificity is key •  Large companies typically have more time and money to spend on SEO work – Fixing and improving your structured data will only have a positive effect @scarletalphabet
  9. Takeaways •  Google Search Console/Structured Data Testing Tool – Are you

    and Google on the same page? •  JSON-LD – Preferred by major search engines including Google – Easier to express complex data structures in a (relatively) neat and orderly fashion @scarletalphabet
  10. Important Links •  http://schema.org/ (major source of schemas for structured

    data) •  https://developers.google.com/schemas/ formats/json-ld •  https://search.google.com/structured-data/ testing-tool/ @scarletalphabet