[Basics of a mobile website for SMBs] 2. Bring it in: Viewports, zoom and plugins

Hello, good afternoon. My name is [INAUDIBLE]. I'm from the Google
Search Quality Team, and welcome to this week's
installment of basics of a mobile website for SMBs. This is a series of
four presentations over the month of
March, where we hope we'll be able to give you
quick, actionable tips for you who probably own a website
for a small medium business, and that will allow you to very
quickly implement the changes yourself or have a very
meaningful conversation with the people who do your web
development so that you can be informed as to what actually
it entails to create a mobile-friendly website. This is in preparation
for an algorithmic change in mobile search
results that we will be releasing on April
21, at which point mobile-friendly
websites will be given– the mobile-friendliness
of a website will be considered as a
ranking factor in mobile search results.

So this presentation will
be about 5 to 10 minutes, and then we will take
questions, questions presented through the Q&A
feature of the Hangout On-Air. You can click on the little
Q&A bubble, ask a question, and we will make our
best effort to answer it. If we can't answer
it on air today, we will answer it
through the discussion thread of this Hangout. So let's get started. [INAUDIBLE] Let's present it
a different way. Let's present it like this. Here we go. All right. And I have two colleagues here
who will tell me whether or not we're actually displaying
the full presentation. Great, excellent. So let's get started. We have for today's
agenda, we will be talking about viewports,
zoom, and plugins.

This is the second
installment in a series of four presentations. Last Thursday, we
talked about the tools you can use to check your
website's mobile-friendliness. If you didn't get a chance
to see the presentation, you can still see it on YouTube
or here through the Google Webmasters community. You can check it out
after this presentation, or you can catch this
presentation afterwards as well and then follow with
two-way sequence. Today, we will be talking about
viewports, zooms, and plugins, as I mentioned. Viewports and zooms. I will explain how
viewports and zooming affect mobile-friendliness,
and then I will explain very specific things
you can do on your website to make that change. So first, let's show you a
simple but typical web page that has the common features
shown on a desktop website. You've seen your website
might look somewhat like this, or you may have seen websites
that look very much like this. It has a header. It has a navigation bar, a
central [? part ?] of content, a footer with a number of links.

And usually, it has a
variety of pages that kind of follow a similar structure. Now, think about what happens
or what has happened to you when you've tried to see
this page on a smartphone. What you will often see is this. You will see the page completely
zoomed down and squeezed into the browser. This is because the page is
lacking a viewport metatag. A viewport is a
tag, an attribute in the header of the HTML
document at the top of the page that tells the browser
how to display that web page on a mobile device. When you don't have a
viewport, or when a viewport isn't specified, the
browser on a mobile device will try to render the
page at what it considers to be a typical
desktop screen width, and the general
assumption is that you're in the 800 to 1,000 pixels
required for a standard web page.

And what it will do is it
will reduce the whole page, zoom out completely so
that it will actually all fit in the screen. And what you end up having
are tiny little buttons, tiny little text. And you basically have to
almost swim into the page, if you will. You have to pinch and zoom
to try to get at the content. That's not a particularly
mobile-friendly experience. Users will frequently
cite that as one of the examples of the website
just doesn't work on mobile. Think about it when you've
used a website like that. You have to zoom in,
you have to scroll, you have to tap
all over the place. It's hard to figure
where to tap. So the first step to actually
making a mobile-friendly page is to actually including
a meta viewport in the head of documents.

It's a tag that you put inside
the header tag of your HTML document. And what you're telling
the browser at that point is specifically
that for this page, you should treat the content
as having the width equivalent to the width of the device
and an initial scale of one. The scale is the way that it
correlates a virtual pixel, if you will, of the
number of virtual pixels wide that the browser is
with the actual resolution of the device, and
that's how you're able to actually have a
consistent display of a web page across multiple different
types of mobile devices, even though those
devices may actually have different pixel
resolutions of the screens.

And you may be able to get
retina displays on iOS devices to devices of particular
pixel widths or densities, and you're getting
more and more devices with greater pixel density. That doesn't necessarily
mean that an eye can detect all of that without zooming in. So the viewport tag
is a key component of telling the browser
render this page and don't try to zoom out on it. When you do that,
that's the first step in making your web
page mobile-friendly. But as you can see here, if
you've made previous design decisions on your
web page, you may have to take additional steps. In this case, now you
can see that the browser isn't trying to zoom the
page all the way across. But in fact, if you were
to look at this page, you'd have to scroll sideways
and laterally to see it.

So it's at full
zoom, but you still have to scroll
and drag laterally and sideways to use
all of those pieces. So I'll talk now
about what it is, what are the design choices
that may actually cause your web page to look like this once
you have a viewport tag. Generally speaking,
this is a result of having fixed width
elements inside your page. A fixed width element
is a component. Maybe it's a box,
a header, an image that has had a fixed width
set to it in the style sheet.

And when you have a design
that assumes a fixed width, it can actually yield a poor
experience on a mobile device, because usually
fixed widths don't accommodate for the narrower
view of a mobile browser. And these are two examples
of what a fixed width element can do. On one mobile device, let's
say, on one mobile device, it might actually look
fantastic at 344 pixels wide, but in another one,
it will actually be truncated and chopped.

How does this happen? This happens because
usually either within the actual
attribute, a designer added the style element. Or in the style sheet at
the head of the document, in the cascading style sheet
at the head of the document, a specific value
was implemented. Firstly, you will hear in
the rest of this discussion a discussion about CSS,
Cascading StyleSheets. And that is the recommended
way of specifying how content should look on a page. You may have used
web page management tools in the past that put
a lot of style descriptions into each individual little
element part of the page, and that's generally not
a recommended practice. Usually, you want to
use CSS and style sheets and define those at the
top of your document when relevant to indicate how
the page should actually look, and how it should
actually be displayed.

In any event, designers will
often prefer fixed widths and specify fixed widths for
particular elements for design and layout, and this is
actually perfectly fine. It's a well accepted practice,
and this can actually yield very good results. However, when you have elements
with very wide fixed widths, it can make it more
difficult for your website to be mobile-friendly,
and you may find yourself that you have this
situation in your website, that you have a design that
you developed a few years ago, or that somebody developed
for you a few years ago.

And if you are to look in
the source code of the page, you might see a lot
of elements that say width, and
then a big number, and px, which is pixels. And that usually is
going to get in the way of being mobile-friendly
[? immediately. ?] There are two straightforward
ways of addressing this, and then there's an additional
one which combines the two. The first straightforward
way to do it, which might be a
little bit more work, is to actually make a change
on all those fixed widths. And instead of going with
a fixed number of pixels wide that it can be, actually
use a percentage of the window width that you might be. So if you want something to span
all the way across the screen, you can specify 100%. If you want something
that's just 80% that has a margin of
10% on either side, you might use a 10%
margin on either side and specify that something's
80% the width of the screen or the containing element.

That can actually be
a very effective way of over time getting into a
practice of not being stuck with a particular width,
but actually having a design that adjusts to when
the browser shrinks, or the desktop
shrinks, or expands to the width of the browser
screen, or on [INAUDIBLE] to adjust for future
mobile devices when they have completely
different widths. This can get tricky,
though, because it can make your design
more complicated, and it can make
debugging your CSS for particularly fussy designs
or layouts a little bit more tricky. So you have a
second option, which is you don't touch
all of the stuff that you already have that
works on your mobile device– on your browser, I mean,
on your desktop browser. And instead, you use something
called the @media queries, which is an attribute of
cascading style sheets that tells it that everything
inside those brackets would only apply to
particular types of devices. So in this case, you can look
at an @media screen and max width of 640 px.

What this is telling the
browser that renders this page, it's saying look
at the style sheet, and then if you happen
to be on an actual screen as opposed to other
media types, like print, if you happen to be displaying
this page on a screen and you are in a window that has
a maximum width of 640 pixels, then apply these style
attributes as well and maybe override the
ones that you saw above. In this case, what are we
specifying, for example? We're saying that in the
upper part for standard, just set the width of
the body at 1,024 pixels and set the images inside
the main content paragraph to have a width of 80%.

And in this case,
what we're telling it is when you are
on a screen that is no wider than 640 pixels,
make the body width 100% of the width of the
screen, and make the main image having a width
of 100% as opposed to 80%. And with that as well, you can
override some other elements. For example, we're doing
a couple more things here. We're saying there's a Home
button in the main navigation screen, for example. And instead of wanting it
to be a tiny little button on the left of the nav bar,
what we're going to want to do is move it to the
top and to the right. So we're adding in
absolute positioning, and we're giving it a position.

It's 1% from the top
and 1% to the right, and giving it a
different color, just to show that you can apply
not just different widths but different colors, schemes,
and positioning for elements, depending on your screen width. This allows you to
then have a page that is actually responding
to your device's width. So here, we have an example
of this exact same page we had before where we
have a viewport that's defined to match the
width of the device and where we adjusted
the heights, the widths, and the positions
of certain elements only on a mobile device
and a mobile page.

We can see, for example,
that the little Home icon is on the top right now
as opposed to on the left next to Catalog. We can see that the footer is
actually fixed at the bottom. So if you scroll the
page up and down, these links will
always remain there. We added a couple
of other practices. And the best part
about this approach is that we didn't have to change
how it looks on the desktop. So we haven't affected
our desktop display. We're optimizing
for mobile-friendly. We're making a
mobile-friendly web page, and we haven't actually
fundamentally changed how the web page behaves
on a desktop, which might actually alleviate
some concerns that you might have [? or that your ?]
developers might [? bring in ?] about saying, well, we might
be affecting how the web page operates on the desktop.

You can do this on the same
page just using style sheets. This gives you two things. One is, again, you can
have a mobile-friendly page without having to change
your desktop site. On the other hand,
you can actually have the same page working
on multiple devices, which is much easier to manage,
much less expensive to manage than to try to manage two
different websites– one for mobile devices and
one for desktop devices, and maybe even another
one for tablets. So we talked about
viewpoints and zooms, and now there's one
additional piece I want to talk to you
about, which is plugins. Generally speaking,
how many times have you ever tried to view a
page on a mobile and seen this? It's a little icon that says
this plugin is not supported. Avoid unsupported plugins. Make sure that you test your
application and your web page on a mobile device.

Make sure that you're
not using things that aren't supported
on a mobile device, because ultimately, you're going
to end up with users that can't actually use your website. Sometimes, there have
been plenty of websites– so this used to be a
very common practice years ago– of just
using a big Flash presentation as the
main source that created a lot of interactive,
very animated schemes for the user. And it was very pretty, but
it's not machine readable. It's just visual. And what that meant
is that first of all, on a user that was on a device
that didn't support Flash, they couldn't access it. And on a mobile
device in particular, you can't access it. If you are using things
like videos on your website, test them to make sure that
you're not relying on a Flash plugin, but that you're
instead relying on core video elements, HTML5 video elements
that may be supported– and that are supported
on mobile devices.

And if you can, add captions and
add text descriptions to videos and other elements so that users
who might have chosen to turn off video or cannot see video
because they're on a low bandwidth or slow network,
or they don't want to use up their mobile data traffic can
still get a sense as to what content you have on your site. And that concludes today's
presentation, the formal part of our presentation. I want to encourage
you to do a few things. First, take the Mobile-Friendly
Test on your website if you haven't already. I encourage you to visit
the Webmasters Mobile Guide to read in more
detail about the topics that I've discussed today. I'm walking you through
the different tests that the Mobile-Friendly
Test tool will run on your site and the
explanations that we provide. If you want more
detail more quickly and can't wait
until next Thursday to see what other fun things
the Mobile-Friendly Test has in store, go to the
Webmasters Mobile Guide. We'll guide you through that.

And if you need
help with your site, if you really are struggling,
you don't know where to begin, you don't know
where to start, we have a fantastic community on
the Google Webmasters Forum where you have a very
helpful set of both Googlers and other community
members that will be happy to give you advice and
guidance as to how to proceed. I encourage you to take
advantage of these resources. Also, if you're visiting this,
you're already probably already following us on Google
Webmasters and Google+. If you aren't, definitely
I encourage you to do so.

And follow us on Twitter. We post announcements, both on
the Google+ channels as well on Twitter, announcements,
news, and invitations to future events. And with that, we
will be shifting over to questions and answers
for the remaining part of the presentation. So let's go to Q&A
what we have in store. All right. Let's pick the first question. This is a question from
[? Rene ?] [? DesMontes ?]. As smartphones get higher
screen resolutions, such as the Galaxy
X, which viewport does Google recommend for a
modern mobile-friendly website, and how are these phones
seen using Google search? You want to think more
about the device width property in your browser than
the actual physical pixel resolution of the
device, because browsers have by and large settled
on a virtual pixel width, if you will, that match the
physical pixels on the device to a virtual pixel
on the browser.

That allows you to
have a consistent set of mobile devices that
run the spectrum of sizes and just a little
bit of aspect ratios without having to worry too
much about the proportions. Generally speaking, you
do want to think about, when it comes to devices
with super high resolutions, on whether your
images, whether you want to actually include
two versions of your images and respond to that
in terms of providing much higher resolution images.

Sometimes you can get really
visually enriching experiences on super high
resolution displays, like the retina
displays [INAUDIBLE]. If you provide a much
higher double-width or double-density resolution,
even just for background images, you can get a lot
more visual depth than that. That's a little bit more
of an advanced technique, but if you Google something like
retina display or high density background images, you'll be
able to get a good perspective on that. But by and large,
the viewport setting that we're
recommending here will allow you to cover the broad
range of [INAUDIBLE] positions, because you're not specifying
a particular width. You're just saying give
me the device width and assume that when I talk
about a pixel in the CSS, it's one pixel, one of the
virtual pixels [INAUDIBLE]. I hope that answers
the question. Let's go to the next one. So here's a question from
[? Luka ?] [? Chersnifsky ?]. Your suggestions are great, but
what when we have most of these already added and our
ranking is still bad? Then we go back to the basics. Mobile-friendliness isn't going
to somehow make a bad website good.

And that doesn't mean that if
your ranking [INAUDIBLE] what you would want it to be that
your website isn't good, but you want to focus in on
the quality of your content. Are you giving your
users the content that they're looking for? Are you responding to the things
that they're searching for? And when they land on your page,
are you actually giving them something that encourages to
both come back and recommend your site, your [INAUDIBLE]
service, to other people. This isn't going to fix
basic ranking issues. You still have to think
about the core guidelines that we always provide
when it comes to ranking. Focus on content quality. Focus on providing
the user experience. Focus on following our
webmaster guidelines, and that should get you
across [? the board. ?] But this is definitely
not going to– this isn't going to address
a systemic problem, but this is definitely
going to allow you to provide a good experience
on mobile if you don't already have one.

I hope that addresses that. OK, here's another
question from [? Luka ?], and I'll follow
that one as well. We implemented responsive
design for a website. All looks good on mobile,
Chrome, and Firefox, but the footer is missing
in Fetch and the Render tool in Google Webmaster Tools. Why? You don't support display
block on CSS command? I have no reason to believe
that we don't actually support display block on CSS command. We do render the
pages, and based on everything I've
seen, on websites I've built where I actually
physically use display block for defining how
the browser should render a particular CSS element, a
particular element based off of that CSS command,
there's no reason to believe that we don't
actually support it.

What would be important
to do is actually look at your specific page and
then figure out whether or not there's something about how
that page is displaying, or how that page is being
seen by Googlebot in rendering that causes that to not appear. I don't have any
reason to believe that that would actually
affect the mobile-friendliness perspective of your
page, but I certainly would encourage you to take that
specifically to our Webmaster Forums where we might be
able to take a look at it in a little bit more detail.

I hope that answers that. Here's a question, what is an
OK score on page speed insights? I'll answer this question
a little bit differently. Instead of aiming for
what's just good enough, think about all of
the recommendations in both Mobile-Friendly
Tests and [INAUDIBLE] as really well distilled
best practices that have been gathered by both
good web practitioners, Googlers, and folks who have
been in the web industry for a very long time. It's just sort of almost
fundamentally basic thanks to having a great website.

There aren't a whole lot of
things in those recommendations that are really things
you should skip. There are some things that
you can get away with, but ultimately, you're not
providing the best experience to your users. You're missing out
on basic things you can do to really address
very systemic problems. So I would not
necessarily treat it as what's a good enough
score, but rather saying if you haven't already
gotten to the point where you're addressing the criticals
and the you-should fixes, you're probably
not doing all you can do to give your users
the best experience.

All right. I hope that addresses that. Here's another question. This is a question from Claire. In Google Developers and
many other credible sources, I have seen that it
is not recommended to use maximum scale
on a responsive site. Would this negatively affect
ranking mobile-friendliness if this was kept on the website? If the Mobile-Friendly
Test labels you as having a mobile-friendly page
and mobile-friendly websites, then for the perspective
of mobile-friendly ranking, you should be fine. When it comes to not using
maximum scale on a responsive site, following
that recommendation, I think the main key
you want to focus on is if you are making
a design choice that is making it difficult for
users to actually interact with your page, if the first
thing I have to do when I land on your web page is start
zooming in swimming into it to actually get at elements,
if I can't actually tap on the things that
will allow me to convert, to act, to take that
business, to sort of do the thing that you want
me to do on your website, I might not come back for it.

I might not actually do it. So think about
whether or not you're sticking with the choice
of actually staying with maximum scale– I assume
you'd have good reasons to do so– think about whether or
not that's actually helping your users accomplish that. If that's the case, then
by and large, your users will be happy. And as long as you've
addressed whatever elements are defined in
a Mobile-Friendly Test, you should be fine. And hoping that answers
the question as well. All right. Let's see. This is a question that
I'm not sure I completely understand it, but I think
I hope we answered it.

How do I lock a viewport so
it's the same on any device, and is it even possible? What I would say is that
if you define a viewport as– if you define the
viewport indicator on the pages we're recommending,
what you're telling the browser is just don't
try to scale my page, or don't try to do some magic
adjustment so that things fit in here. Just assume that when I'm
talking about a CSS pixel, I'm talking about
one of the pixels that the browser understands. But I'm not sure
if that's actually addressing your question. If that wasn't
your question, I'd invite you to
re-ask the question. Maybe we might end
up in the forum, or even on the
discussion thread, we might be able to get to it.

All right. Let's see from [INAUDIBLE]. Is having an M-DOT
site OK for ranking? And [? G ?] [? scale ?]
[? ID ?] URL path, is that OK, or should I remove it? I'll go on the M-DOT site. On the M-DOT site, it
shouldn't be an issue. The thing is, it can make things
a lot more difficult for you. If you do, we will have
in the fourth installment on this discussion, we will be
talking about canonicalization, which is how you map
URLs on your M-DOT sites to your main page and
to sort of show which ones are corresponding
results for one and the other. That's doable and feasible,
but it can be tricky to manage. It can be a little
bit complex to keep sorted on an ongoing basis. So when it's OK for ranking,
it's for your M-DOT site, that's– as long as your website
is getting value to users on mobile devices, or even
on non-mobile devices, it should be fine.

But think about
whether or not you want to maintain that
over the long term. And if you're committed
to that, then definitely make sure you're properly
canonicalizing your URLs, and doing proper mapping between
your mobile and your desktop so that callers
know which page is a corresponding
page to another one so that when we're calculating
page relevance we understand. We understand
[? this ?] as well. Let me look at the
next [INAUDIBLE]. Let's see. Here's a question
from Steve Cooper. This is one that comes
up a fair amount. We use several third party
tools, like social sharing buttons, and it's
recommended that we minify the code to
speed things up, but it's not our code to change. Recommendations? Generally speaking,
my experience has been with using social
sharing buttons and things that large providers
will create, they will often provide those
resources already minified. So look through the resources
through which you actually obtained this code, whether
it's by the provider, whether it's Google, or
Facebook, or Twitter, or any other social
networking sites, or other sites
that you're using, and look as to whether or not
they actually give you a .gz or even a .min version
of that JavaScript code.

My experience has
been that they usually will provide that
because it's just a good practice for everybody. It good for web hosts,
it's good for them. If they're serving
it, they don't want to be serving
[? more bots ?] than the need to. And if you're not
able to do that, then the [INAUDIBLE]
piece is consider loading that JavaScript
at the foot of the page, not in the head of the
page, but in the foot. Or consider loading
it asynchronously so that you're not blocking
the rendering of the page until those scripts load. Those are not fundamental
to the first things that users are going to
be doing on your page. And so you may want to consider
putting those at the foot. And that may also help
address that concern. All right. This is a question from
[? Milton ?] [? Fullick ?]. What do you recommend
as a safe breakpoint for a smartphone version? You can see both
320, and 600, and I want to say 80 used as
very common breakpoints. Those generally tend to fit
the different types of devices.

If you think behind the
principle of responsive design, the answer should be
don't worry so much about the devices and
the smartphone versions, think about how to design your
page so that at logical widths, it functions, and therefore,
how to adjust flexibly so that whatever buffers
you need on the sides are actually not
all that important. So if you think about
how can this page work when you are listing it
as a long, narrow column? How can this page look
when you're seeing it on a very large browser? How does this page look when
you're both wide and tall, and think about the layout
of that page that way, then you might actually land
on natural breakpoints that fit within narrow smartphone,
or wider smartphone, tablet, and a desktop browser.

That's more of the
principal of the question. But if you want a pixel
number, generally we'd be sitting in the
mid-600s range, and it'll depend on
which devices you think are going to be more
prevalent for your device. But we've been
showing 640 and 680. I think we [? settled on ?]
680 recently. Hope that answers that question. Here's another question from
Specialized Digital Marketing. How to best get rid of
render-blocking Java and CSS in the header? Put it lower down.

Put it in the footer. You can put the script
element pretty much anywhere on your page as long
as CSS can be render-blocking, but you can actually put
non-render-blocking CSS further down. JavaScript doesn't have
to render-blocking, but the loading of
that can actually– if the loading of
the JavaScript is fundamental to the
display of your page– let's say that you're actually
doing something in JavaScript that's modifying the
look of the page, you want to load that quickly. But then everything
else that may be plugins or additional
components and so on, you can just put them
lower in the page.

And that way, all
the other resources necessary to render your page
are loaded first, [INAUDIBLE]. Let's see. Here is a question
from [INAUDIBLE]. My site is mobile-friendly,
but having 13 resources which are blocked by robots.txt. Will it be a problem? Do I have to fix it or not? Thank you. If those resources are critical
for Googlebot to actually see your website as
mobile-friendly, then that will be an issue
because we will not be able to know that your
page is mobile-friendly. So if your CSS is blocked, if
your JavaScript is blocked, if the images are necessary
for your mobile-friendly layout to work are not
[? probable ?] by Google, then we will not
be able to see– Googlebot will not be able
to see that your page is mobile-friendly. So that will get in the way. The general thing
we're asking is let us call your JavaScript
[INAUDIBLE], call your CSS, and let us view your page like
a browser [INAUDIBLE] the page. And if you're able to
let Googlebot do that, then we'll be able to
determine if your page is mobile-friendly. Here's another
question from– I'll have time for one more question.

And let's ask from
this specific question from Dave, which we saw
earlier, which I thought made sense from
Dave [? Griffins ?]. Website is marked as
mobile-friendly in mobile search, which means that it
has passed the mobile test and the CSS and JavaScript
are not blocked by robots.txt, but there's a separate mobile
version at /mobile which is blocked by robots.txt and
doesn't have canonicals and alternate tags on
desktop and mobile versions. Is this a problem? I would say it is. It's a problem to the extent
that you actually want pages on your desktop site
and your mobile sites to be considered equivalent
because it can actually be particularly irritating
if I'm in a mobile browser and I find a page that is
relevant to my results, and it's a desktop page,
I go to that desktop page and you redirect me not
to the right page, that's not a great experience. And the second thing
is Google will actually identify whether or not
you probably do a redirect and skip that redirect.

And if you're sending
[? me out ?] to the wrong page, that may also be a problem. If you put in the right
canonicals and alternate tags, then it actually allows
Googlebot to say, hey, here's this page
that ranks or here's this page that's relevant. Here's the other page
that's corresponding to it might actually
be mobile-friendly. This page may be
equivalent to this one. [? Let's try this one. ?] Let's
take them to this because this is the mobile page. I would say, if you do need
to have two mobile websites, the first thing is if Googlebot
can't call JavaScript and CSS, then Googlebot can't tell
if you're mobile-friendly. And if you don't have good
canonicalization or alternate, then you may be missing
out on relationships and common understanding
of those pages, telling Google these pages
are actually equivalent, treat them similarly,
which may actually be affecting some
of your results that you get in terms of
users going to your site.

We didn't have the time to
answer all the questions during this broadcast, but we'll
take the remaining questions and answer them in
the discussion thread. Again, thank you
for taking the time. I hope this has been
useful and valuable to you, and we look forward
to talking to you in the next iteration of
this next Thursday afternoon. We have two more
sessions along the lines. In the meantime, if
you want to get started on making these changes
and want some support, the Webmaster Mobile
Guide is there. I Encourage you to take
the Mobile-Friendly Test and follow the advice and go
to our Google Webmaster Forums for questions and support. There are plenty
of helpful people who are happy to
give you assistance. Thank you for your
time, and good luck. Take good care. Bye-bye..

As found on YouTube

AI Magic Studio

How to Import WordPress Users

Foreign, this is Joe from Sofi and in this video we are going to import users into WordPress from a CSV. So the first step is to go down here to wpl, import and then select new import, and then we have three options. We can select an existing file that we’ve already uploaded. We can choose to download a file where we would input the URL from something like Google drive or Dropbox or FTP, or something like that or in this case we’re going to upload a file from my computer, and you can see here I have the CSV.

It has a bunch of user data in it we have their first name last name, email address, some billing and shipping information, etc, etc. So I’m going to select that upload that into wpl import, and then we have two options. We can import data from this file into existing items if we were going to try and match this to WordPress users that were already on our site or in this case new items because we’re going to be importing new users. So we’ll click here and then scroll down to users and that’s going to create a new user for every record.

In my data file, every Row in my CSV all right so wp l import has processed the file and it’s detected 5754 rows and each row, as you can see down here, is one of my users. These are the columns along the top of the CSV, and this would be one user record that gets imported and then down here we have our filtering options here. What we can do is we can choose to filter data by some data element in my file. So, in this case, I want to import people who are from California, so I’m going to go ahead and type Inca down there and then also from people that are in New York billing state equal to New York.

We’re going to add that rule now, the way this filter is set up right now is going to show me it’s going to import people that have a billing State of California and New York, but I want it to be, or so we’ll select or over there And that’s going to give me people from California or New York and we’re going to apply filters to XPath and that’s our XPath statement up here.

That’s going to determine what gets imported from our file.

If you know what XPath is that’s great, you can put anything you want in here and write a custom, XPath expression, and if you don’t know what XPath is doesn’t matter, you don’t need to know what XPath is or how to use it, because wp l import is Going to take care of it for you, so you can see here we have 959 users that are going to get imported and they all have a billing state of California or New York, looks good to me and now we’ll continue to step three all right.

So over here on the right, we have our available data to import from our import file. You can see that’s all of our customer data for the first record for the second third Etc. Then, over here on the left, we have our user info first name. Last name, username, etc, etc. A user info a little more detailed information about the user account and then our custom fields. So some plugins are going to add data as a custom field. You can click to see detected fields and that’s going to pull up every single.

Weird piece of custom data that is on your site, depending on what plugins you have there’s going to be more of us here and if you want to import to these, all you have to do is find the right one figure out what data that is needed For that custom field and drag it over in this case, we’re not going to really do that. What we’re going to use is Advanced custom fields and it’s pretty nice. So, what we did is we added some member data, and we want to get in the address and the phone number.

So, let’s start up here at the top. So first I’m going to drag in my first name and my last name and the username and the email address and the password. And what we’re going to do is leave the password blank and let WordPress assign a random password to these users. And then we can just email all the users and tell them to log in and create a new password for their account if we had our password data in our import file and it was hashed the way, WordPress stores those right here.

What we would do is we’d drag it over put it in there and select.

This is a hashed password from another WordPress site, and then their passwords are just going to work automatically in this case we’re importing from somewhere else not from WordPress. So, we don’t have the password data now, if you’re interested in migrating your WordPress users from another WordPress site, it’s a little bit easier of a process check the video description below. We have a link to a video for that.

So, I’m going to uncheck this and again we’re just going to leave that blade and now we’re going to other user info. So this is the user role and these people are going to be have a role of member right, because these are going to be members. I’M imported to my site, members from California and New York, so we’ll give them a user World member.

This can be subscriber customer or something like that if you are importing WooCommerce customers, we have a separate video for that. If you check the video description below you can check out our video on importing WooCommerce customers or migrating them, but in this case, we’re doing members for nickname, I’m going to leave nickname display, name and all this stuff. Blank we’ll drag in registered date. Just because I have it, but the rest of this will just be set automatically by WordPress during the import process, so close this tab over here and now we’ll go down to our address data into the advanced custom Field section.

So you can see here all of this data is spread out into a bunch of different fields. Right we have Street city, state and zip, but now we have one address fee, so I’m going to do is drag all of them in together, so I’ll drag in building Street. Give that a space, then City – and I want to have a comma in between these – like that and State comma and a space and then we’ll do a common space, and we’ll drag in our ZIP code. So, we have Street city state, ZIP, perfect, and then we have our phone number now the phone number it doesn’t have the country code.

They want to get the country code in there. So, I’m just going to put a plus one and a space like that and that’ll get this billing phone formatted nice and pretty for me now again. If you know XPath, you might recognize these as little XPath statements in here. So again you can go in and you can customize this and have it say whatever you need to say. If you don’t know XPath again, don’t worry about it. Wpl import is going to take care of all that. For you, then, finally down here, we have our custom function, editor, where you can write, custom, PHP functions and pass your data through it.

For example, let’s say I wanted to have the billing street address up here and then I want another Google Maps link or something like that. So what I could do is I could write some PHP code down here, pass this information into my custom function and have it return the Google Maps URL after calling the Google Maps API um. You can also just do simple stuff, like uh process, some text and have it be uppercase or lowercase, you can do math, you can do all sorts of crazy stuff. If you check our site, we have a bunch of code Snippets with some pre-written code.

Examples for you to kind of get you started and if you don’t know PHP don’t worry about it. You don’t need to know anything about that, so that is our import all configured now we’re just going to continue to step four now up here we have our unique identifier and what this does is it lets wp l import figure out, okay, which of these users are Unique from each other right like what field in here says these are.

These are two unique records: um, for example, billing State, probably pretty bad email address, probably a pretty good field right, because if two people have the same email address, they’re the same user um, you can also a wp l Import, Auto, detect it, and in this case it’s Picked username, which is probably pretty smart, two people with the same username, probably the same user, so we’ll just leave that there um down here we’re telling wp l import what to do when it’s detected new or changed data when we run the import again. For a second time, so if, for example, it ran this import again with a new import file – and I changed some of this information in here – what do I want to do?

Do I want to create new users from people that I’ve added to this file um?

For example, if this was hosted on Dropbox and this file is changing all the time, do I want to delete users that have been removed from the file um and then you know I can choose here. I can say: Okay um. I only want to update their login, their login name or the URL, and I want to leave everything else the same. So, what we’re going to do is we’re just going to leave it with the default settings.

We’re going to leave this checked um the email notifications for imported users, then that way, these folks are not going to be getting welcome, notices from WordPress as they get imported. Now you need to be a little bit careful with this setting, especially if you want to make sure that people aren’t going to be emailed. There are some email plugins for WordPress, that kind of make the email process a little bit easier and they prevent us from actually blocking these notifications for getting sent out.

So, it might be a good idea to run a test first and just make sure the email notifications are actually going to be blocked before you run an import, for example, with 959 users and then you’re accidentally sending them welcome notices.

You know, as every time you run the import um so something to keep in mind um down. Here we have some scheduling options where we can choose to run this import on the schedule, for example every Monday or once a month, or something like that again. If this was file was hosted on Dropbox, it might be changing all the time. We can keep our WordPress users up to date and then these settings we might want to take a little bit of a closer look at them. In this case, again we’re just running this import once and then we have some advanced settings.

If you want to dig a little deeper into how the import process is going to run um, we’re just going to leave all this with the defaults and then continue and that’s it so we’re just going to double check all this here, make sure everything looks good and then confirm and run the import now this is going to take a few minutes uh. We will let it run and come back when it’s finished. All right import is complete.

That didn’t take too long. So, let’s go over here to our users and check them out looks good. We have 960 users, that’s 950m that were imported and then my one administrator account.

So, let’s open one up and see how it looks so, there’s their username first name, last name nickname which we didn’t actually import but which was set automatically by WordPress. Their email address scrolling down – and here is our member data from ACF the advanced custom Fields. Plugin see their address looks nice and we have our country code in front of their phone number and down here you have capabilities member. So, what we did is we added that user role for them and that’s right there, so that is how you import users from CSV into WordPress using wp l import thanks for watching and we’ll see you soon.

Ultimate Reseller
https://paykstrt.com/12572/38508
7 in 1 Licensing Collection
https://paykstrt.com/42141/38508
3X Growth Formula
https://paykstrt.com/45722/38508

 

Instant access to your free swipe file of 47 business-boosting tools!

Productivity PLC Motion – How To Use The Built-in High Speed Test Tool from AutomationDirect

Suppose you have a Productivity Series Controller with a High Speed Output Module driving a stepper drive which is controlling a stepper motor and the motor isn’t reacting to the commands you are sending it from the ladder code in the controller. With so many active components in the chain, where do you start when the motor doesn’t react to commands sent from the ladder code? Is it your code? Or is it one of the electronic components? Debugging problems like this can be time consuming and expensive.

The good news is the Productivity Suite software has a tool that makes debugging this stuff so easy. Let’s setup a new project. Choose a CPU – we’re using the one connected to the USB port. This CPU is brand new it has NO project in it. With the CPU in STOP mode, go to system configuration and auto detect all the hardware.

Double click on that and we see we have a Productivity 2000 controller with two high speed output cards in it’s base, one in slot 1 and one in slot 2. Great, we selected a CPU and auto-detected the hardware. We have NO code in the CPU and we haven’t configured the HSO modules. We’ve just detected the hardware. That’s it.

Given that, check this out – Under the tools menu there is a high-speed module testing tool.

It’s also over here under Monitor and Debug. This tool gives me complete control over the HSO module, and it is completely independent of the ladder code in the controller and the Module’s configuration – neither of which we have done yet! Here are my two modules, the one in slot 1 and the one in slot 2. Let’s test the slot 1 module. To do that click on Start Monitoring. The module has two high speed output channels. I have a motor connected to channel 1 so we’ll play with that one. My drive is set to 2000 pulses per revolution so if we send 20,000 pulses per second the slides screw should turn 10 times per second.

And since the screws pitch is. 5 inches per revolution, we’ll expect to see 5 inches of travel per second. Let’s accelerate and decelerate at twice that rate. This system is wired for pulse and direction, and I have the carriage in the center of the slide, so I don’t care which direction we start with. Now if I hit START, I instantly see the carriage ramp up to speed and move at 5 inches per second. Perfect.

And remember – we did all of this completely independent of any PLC code or High Speed Output Module configuration. So if the motor does move as expected, we know our issue is back here. If the motor doesn’t move – the issue is over here. This tool just cut the scope of our debug problem in half and tells us exactly where we need to be focusing our attention – hardware or software.

And since we have absolute control over the pulses generated, we can also use it to verify we have the stepper drive configured correctly.

And by playing with this I can instantly see that “Positive” direction means the slide moves to the right and “Negative” Direction is to the left. Another time saver – I don’t have to figure it out – I just try it and see the answer.

What happens if I put zero acceleration in here? Nothing! Why?

Because we told it NOT to ramp up to speed! Makes sense- right? What happens if we put a low value in for acceleration – well it takes forever to ramp up to speed. The stop button will ramp down at the deceleration rate and Abort stops everything dead in its tracks – immediately. The beauty of this tool is you can play with the motion system and get a feel for how it is going to react to commands all BEFORE you write your first line of ladder code or even configure the module.

So now when you DO write your Ladder Code you know exactly what to expect and you know you have functioning hardware. And that makes your life so much easier. Also note that since the HSO modules always maintain real time position and real time velocity information independent of the processor, you can see those actual values while you are testing. You can also monitor all the HSO Modules discrete inputs and even manipulate all the outputs. Again, Independent of the code in the processor.

So the bottom line is this tool gives you complete control over the entire HSO module independent of the rest of the project so you can setup and test your hardware before writing your first line of code which makes you more productive. Which is why we call it the “Productivity” family of controllers. If you need any help, please contact Automation Direct’s free award winning support team during regular business hours. They will be happy to help. And don’t forget the forums.

There are lots of folks there that love to share their years of experience. Just don’t post any questions directed at Automation Direct’s support team there – they don’t monitor the forums on a regular basis.

Iq Lead Magnet 2025
https://warriorplus.com/o2/a/xzl1mt9/0

Blog Automate
https://warriorplus.com/o2/a/jglwrrz/0

Instant access to your free swipe file of 47 business-boosting tools

Read More: [1-20] Mercenary King Returns To The Past To Get Revenge For His Family l Manhwa Recap

How to Add HTML Compression /GZIP

Hey everybody, if you fail, the HTML compression test have no fear. It’s not Rocket Science to setup. In fact, it’s as simple as it can be, and it will very well help improved the page load time of your website, thereby improving user experience and from there help you to climb up search engine rankings. If you got a gigantic site that requires a lot of bandwidth to serve.

This is one easy way to reduce server cost, but even for smaller Websites, it does make a significant difference in page size, it’s one of the easiest ways to Optimize Your Site.

So really, there are no good excuses not to do it. So, what is it exactly? Html Compression is a technique that we all know from archiving files and directories with archive compression programs like WinZip, WinRAR, 7zip and others. What HTML Compression does basically is it takes your HTML code, looks for similar strings within it and replaces them with shorter strings, Resulting in less code and therefore smaller file size. No, but this is not the same thing as Minification, Though that’s a fine method as well.

If that’s, what you’re into Minification is the process of eliminating all the spaces, the line, breaks, Empty lines, indentation and so on within your code, that makes it easier for humans to read and work with. Non-Humans don’t need all this buffers to visualize the contents of the code So with Minification we can trim all that fat Which results in a slightly smaller file size, That’s well and good. And yes, this will translate into less bandwidth requirements to deliver your code from a Server and deliver to someone’s Browser.

But compression goes that one step further. It searches for the similar strings, like I just mentioned, and replaces them with shorter references resulting in much less code. For example, let’s say I’ve got all these Closing div tags. After a certain section on my web page, There is 12 of these with greater than and less than signs The slashes, the d’s, the i’s the v’s.

But don’t worry this not something that you have to do manually, so don’t get rattled here, I’m just showing you how the process works. Minification will do this, or compression will look at that and say Actually, instead of seeing this as 72 characters let’s look at this as 6 characters repeated 12 times. We got these first 6 characters, the greater than sign The slash D I V And a less than sign.

We’Ll keep this as our reference And make a second reference to the first symbol, starting 6 characters back And will say: let’s use the next 6 characters from there. So now we’ve got our first closing div and our second closing div, Since the next 10 closing div.’s are the exact same. We can make this refer to the next 60 characters And, while all What started as a 72 character, uncompressed in their original form Can now be represented by just 14 Characters in total compressed format.

So that’s the basic idea If we apply this to our entire page, with all the div tags and all the tags like body, paragraph images lines and so on, As well as herb’s, all our Style classes and so on… Our uncompressed web page. That clocks in at a 167mb, comes down to a lean and mean 78mb once compressed A whopping 46 % reduction in file size, Rock and Roll. Then, when a user requests our content, our server sends that smaller compressed code

The User receives it, their browser, decompresses it and boom they’ve got our content So yeah. This last action does take time in CPU, but in almost all cases it takes much less time than transferring your HTML content in the larger uncompressed format. So that’s how it works again, don’t need to sleep over these details. You don’t need to mess with your code or know how to write Algorithms to make this work. All that is taken care of the most common HTML compression methods are DEFLATE and GZIP And honestly, there is not a gigantic difference between them.

They both use the same compression method, The same Algorithms, But GZIP also contains a checksum and a header footer. So, DEFLATE is technically faster, but you also technically risk both the payloads, since there is no checksum Anyway go ahead and research. This more. If you like it’s worth your time, but in my opinion, to make your tomorrow in my case, I use GZIP because its good enough and it’s on the side of safety in terms of delivering content Now to implement either of them is pretty simple. It just depends on what kind of server you are running, or you have an .htaccess file. If you get an htaccess file, simply edit it and add this Deflate codes to it or for GZIP. Add this GZIP codes.

Save and Done Get back crack those methods and waste. Those hearing behind your head, Your HTML, is now compressed And user is requesting. Your content will automatically receive that compressed content Which will decompress in your browsers. If you’re running on NGINX yo want to add it to your NGINX config file, Add the following: Save Close and restart the Server and on Windows server.

It’s even easier. You can just open up your IIS manager, click on the siting, question Click compression And enable STATIC COMPRESSION And for WordPress users, it’s still best to add it to your .htaccess file directly, like I showed it to you a minute ago, But WordPress also has a Built-in Gzip compression In your option, which leverages PHP Again it’s better to do it through your .htaccess file but Hey if it’s too daunting. For some reason, then this method also works and when you’re done, assuming you have a GZIP, you can Google GZIP compression Tool And test your webpages to make sure it’s working feel free to check out our other videos. So you can keep fine-tuning and getting the most out of your SEO and click subscribe to stay, updated with new tips and tricks to get you to the top of the search engine results pages.

Faceless AI Business Empire
https://warriorplus.com/o2/a/qq2nxyv/0

Easy Pro Funnels V2
https://warriorplus.com/o2/a/c4qmt/0

Instant access to your free swipe file of 47 business-boosting tools

Redirect Management in WordPress | Proper Page Redirect in WordPress Explained with Examples

Welcome to westly empress a redirect is a way to send. Both users and search engines to a different URL or page from one that was originally requested a website, is bound to change or modify links. At some point URL: redirect is used to retain Seo for a website, or you can create URLs that are not present in website, but you need those to hide the original URL, for example.

Many website owners, Mask affiliate links by using redirects for example this link that is from your site, is way. Better than, this link, that is from target website you can create links that do not even exist in your site yet. They can redirect to another page or URL. Your site can look at requested URL and take an action based on that. Okay, one way to redirect a page is to use dot. Htaccess file this website has go told page that i want to redirect to new page both pages exist in the site.

This is old page at this website, and this is new page. When i will request this old page, it will be redirected to new page to do it via htaccess file. Weave to add a rewrite rule. Inh access file in WordPress. hexes file can be found at root of site open it in code editor use if module mode, underscore rewrite, dot c rewrite engine on rewrite match. 301This is http status code, redirect code want to send this old page to this new page save by using htaccess file? If you want to redirect a page to a new page, you need this code, let’s test it out refresh site.

Now, if i will go to old page, it will redirect me to new page this is new page old page new page, this redirect is a 301 redirect a 301 redirect is a permanent redirect that passes full link, equity, that is, ranking power to the redirected page in most instances, the 301 redirect Is the best method for implementing redirect son a website it tells search engines. That requested page has been moved to a different URLs search. Engines will also update the database for.

This URL implementing redirects via dothtaccess file is a manual process and its slowdowns website. It also is not maintainable we have other better ways of implementing page redirects in a visual way will just comment. This code goes to plugins add new search for redirections.

This is the plugin manage 301redirections, keep track of 404 errors, and improve your site with no knowledge of Apache and nginx needed, install and activate this plugin after activating this plugin you will find a new entry in tools. Menuthat is redirection. You can skip this setup, and this is the interface that we have go there. We will mention source URL that will be the requested URL, and here is the target URL that this source URL will redirect toad.

Also, from these settings we can also specify HTTP code three zero one moved permanently these due to found 304 and not modified temporary direct 307 or 308 permanent redirect redirections plugin allows redirects with preferred http status codes. Now i have commented redirection from dot htaccess file. FirsTel’s verify that i will open incognito window, and this is our old page – and this is our NewPage, so old page will be redirected to new page source URL, that is old, page and then target page. That is target URL, 301 move permanently. Add redirect and. Redirect has been added, herein can disable it.

I can delete it, i can edit it. I can create groups for redirects this plugin. Also logs broken links at your site. You can monitor changes to posts to pages or landing pages or templates and Moreso. This plugin has got few useful settings that. You can use now, let’s test this URL refresh website go to old page that should redirect to new page now, and it is new page now. I am going to delete this rule and then go to plugins deactivate and i will add another plugin.

That is 301 simple, 301 redirects install activate simple 301 redirects allow export and import redirect rules and it’s always 301 redirect that means permanent redirect. So, from the settings 301 redirects – and here is the requested URL old page and that should redirect to this new page. Add new can change these entries and hit update to update. This rule, i can add more rules from here and, then export file in dot, csv format, Sothis plugin, is offering separate backup for our redirect rules. That is also Goodnow.

Let’s test this so now old, page should redirect to new page old page, and it is your directory new page request and destinations. This plugin works as well. I often use these two plugins in most websites. Almost all clients ask to install redirect plugin in WordPress integration process. That much important are these plugins so make sure you install a redirect plugin when you start developing website in WordPress okay.

I hope it helped like share subscribe and. I will see you in the next video.

Mail vio Extra
https://paykstrt.com/47223/38508

7 figure Mastermind™ by Niklas Pedde
https://jvz6.com/c/1399091/412065

The Millionaire Matrix Code
https://a3c8e1lc9qdj7yncnx6etoro1d.hop.clickbank.net

GeneratePress  <<– Instant access to your free boosting tools!

Lightweight WordPress plugin providing flexible and responsive blocks for building websites. This is the WordPress theme we use at Authority Hacker. We’ve used GeneratePress and Generate Blocks to build multiple 7-figure sales pages, with zero other tools.